diff --git a/func-math.go b/func-math.go index 566d4b2..383d79d 100644 --- a/func-math.go +++ b/func-math.go @@ -28,8 +28,8 @@ func doAdd(ctx ExprContext, name string, it Iterator) (result any, err error) { if v, err = doAdd(ctx, name, subIter); err != nil { break } - if subIter.HasOperation(cleanName) { - if _, err = subIter.CallOperation(cleanName, nil); err != nil { + if extIter, ok := v.(ExtIterator); ok && extIter.HasOperation(cleanName) { + if _, err = extIter.CallOperation(cleanName, nil); err != nil { return } } @@ -103,8 +103,8 @@ func doMul(ctx ExprContext, name string, it Iterator) (result any, err error) { if v, err = doMul(ctx, name, subIter); err != nil { break } - if subIter.HasOperation(cleanName) { - if _, err = subIter.CallOperation(cleanName, nil); err != nil { + if extIter, ok := v.(ExtIterator); ok && extIter.HasOperation(cleanName) { + if _, err = extIter.CallOperation(cleanName, nil); err != nil { return } }