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)
|
||||
}
|
||||
}
|
||||
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 {
|
||||
opName := indexTerm.source()
|
||||
if opName == resetName {
|
||||
err = unboxedValue.Reset()
|
||||
} else if opName == cleanName {
|
||||
err = unboxedValue.Clean()
|
||||
if unboxedValue.HasOperation(opName) {
|
||||
v, err = unboxedValue.CallOperation(opName, []any{})
|
||||
} 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:
|
||||
err = self.errIncompatibleTypes(leftValue, rightValue)
|
||||
|
Loading…
Reference in New Issue
Block a user