@@ -23,6 +23,11 @@ func eqFunction(ctx types.Context, args []ast.Expression) (any, error) {
2323 return nil , fmt .Errorf ("argument #0: %w" , err )
2424 }
2525
26+ leftData , err = types .WrapNative (leftData )
27+ if err != nil {
28+ return nil , fmt .Errorf ("argument #0: %w" , err )
29+ }
30+
2631 leftValue , ok := leftData .(ast.Literal )
2732 if ! ok {
2833 return nil , fmt .Errorf ("argument #0 is not a literal, but %T" , leftData )
@@ -33,6 +38,11 @@ func eqFunction(ctx types.Context, args []ast.Expression) (any, error) {
3338 return nil , fmt .Errorf ("argument #1: %w" , err )
3439 }
3540
41+ rightData , err = types .WrapNative (rightData )
42+ if err != nil {
43+ return nil , fmt .Errorf ("argument #1: %w" , err )
44+ }
45+
3646 rightValue , ok := rightData .(ast.Literal )
3747 if ! ok {
3848 return nil , fmt .Errorf ("argument #1 is not a literal, but %T" , rightData )
@@ -43,7 +53,7 @@ func eqFunction(ctx types.Context, args []ast.Expression) (any, error) {
4353 return nil , err
4454 }
4555
46- return ast . Bool ( equal ) , nil
56+ return equal , nil
4757}
4858
4959func likeFunction (ctx types.Context , args []ast.Expression ) (any , error ) {
@@ -56,6 +66,11 @@ func likeFunction(ctx types.Context, args []ast.Expression) (any, error) {
5666 return nil , fmt .Errorf ("argument #0: %w" , err )
5767 }
5868
69+ leftData , err = types .WrapNative (leftData )
70+ if err != nil {
71+ return nil , fmt .Errorf ("argument #0: %w" , err )
72+ }
73+
5974 leftValue , ok := leftData .(ast.Literal )
6075 if ! ok {
6176 return nil , fmt .Errorf ("argument #0 is not a literal, but %T" , leftData )
@@ -66,6 +81,11 @@ func likeFunction(ctx types.Context, args []ast.Expression) (any, error) {
6681 return nil , fmt .Errorf ("argument #1: %w" , err )
6782 }
6883
84+ rightData , err = types .WrapNative (rightData )
85+ if err != nil {
86+ return nil , fmt .Errorf ("argument #1: %w" , err )
87+ }
88+
6989 rightValue , ok := rightData .(ast.Literal )
7090 if ! ok {
7191 return nil , fmt .Errorf ("argument #1 is not a literal, but %T" , rightData )
@@ -76,11 +96,11 @@ func likeFunction(ctx types.Context, args []ast.Expression) (any, error) {
7696 return nil , err
7797 }
7898
79- return ast . Bool ( equal ) , nil
99+ return equal , nil
80100}
81101
82- type intProcessor func (left , right int64 ) (ast. Bool , error )
83- type floatProcessor func (left , right float64 ) (ast. Bool , error )
102+ type intProcessor func (left , right int64 ) (bool , error )
103+ type floatProcessor func (left , right float64 ) (bool , error )
84104
85105func makeNumberComparatorFunc (inter intProcessor , floater floatProcessor , desc string ) types.Function {
86106 return types .BasicFunction (func (ctx types.Context , args []ast.Expression ) (any , error ) {
0 commit comments