operator-dot.go: specific *dataCursor case replaced by general ExtIterator
This commit is contained in:
parent
0dbb0ba515
commit
a838361ea8
@ -65,17 +65,27 @@ func evalDot(ctx ExprContext, self *term) (v any, err error) {
|
|||||||
err = fmt.Errorf("key %v does not belong to the dictionary", rightValue)
|
err = fmt.Errorf("key %v does not belong to the dictionary", rightValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case *dataCursor:
|
// case *dataCursor:
|
||||||
|
// if indexTerm.symbol() == SymIdentifier {
|
||||||
|
// opName := indexTerm.source()
|
||||||
|
// if opName == resetName {
|
||||||
|
// _, err = unboxedValue.Reset()
|
||||||
|
// } else if opName == cleanName {
|
||||||
|
// _, err = unboxedValue.Clean()
|
||||||
|
// } else {
|
||||||
|
// err = indexTerm.Errorf("iterators do not support command %q", opName)
|
||||||
|
// }
|
||||||
|
// v = err == nil
|
||||||
|
// }
|
||||||
|
case ExtIterator:
|
||||||
if indexTerm.symbol() == SymIdentifier {
|
if indexTerm.symbol() == SymIdentifier {
|
||||||
opName := indexTerm.source()
|
opName := indexTerm.source()
|
||||||
if opName == resetName {
|
if unboxedValue.HasOperation(opName) {
|
||||||
err = unboxedValue.Reset()
|
v, err = unboxedValue.CallOperation(opName, []any{})
|
||||||
} else if opName == cleanName {
|
|
||||||
err = unboxedValue.Clean()
|
|
||||||
} else {
|
} else {
|
||||||
err = indexTerm.Errorf("iterators do not support command %q", opName)
|
err = indexTerm.Errorf("this iterator do not support the %q command", opName)
|
||||||
|
v = false
|
||||||
}
|
}
|
||||||
v = err == nil
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
err = self.errIncompatibleTypes(leftValue, rightValue)
|
err = self.errIncompatibleTypes(leftValue, rightValue)
|
||||||
|
Loading…
Reference in New Issue
Block a user