@@ -9,15 +9,15 @@ import (
9
9
"github.com/expr-lang/expr/conf"
10
10
)
11
11
12
- type OperatorOverride struct {
13
- Operator string // Operator token to override .
14
- Overrides []string // List of function names to override operator with.
12
+ type OperatorOverloading struct {
13
+ Operator string // Operator token to overload .
14
+ Overloads []string // List of function names to replace operator with.
15
15
Types conf.TypesTable // Env types.
16
16
Functions conf.FunctionsTable // Env functions.
17
- applied bool // Flag to indicate if any override was applied .
17
+ applied bool // Flag to indicate if any changes were made to the tree .
18
18
}
19
19
20
- func (p * OperatorOverride ) Visit (node * ast.Node ) {
20
+ func (p * OperatorOverloading ) Visit (node * ast.Node ) {
21
21
binaryNode , ok := (* node ).(* ast.BinaryNode )
22
22
if ! ok {
23
23
return
@@ -42,20 +42,20 @@ func (p *OperatorOverride) Visit(node *ast.Node) {
42
42
}
43
43
}
44
44
45
- func (p * OperatorOverride ) ShouldRepeat () bool {
45
+ func (p * OperatorOverloading ) ShouldRepeat () bool {
46
46
return p .applied
47
47
}
48
48
49
- func (p * OperatorOverride ) FindSuitableOperatorOverload (l , r reflect.Type ) (reflect.Type , string , bool ) {
49
+ func (p * OperatorOverloading ) FindSuitableOperatorOverload (l , r reflect.Type ) (reflect.Type , string , bool ) {
50
50
t , fn , ok := p .findSuitableOperatorOverloadInFunctions (l , r )
51
51
if ! ok {
52
52
t , fn , ok = p .findSuitableOperatorOverloadInTypes (l , r )
53
53
}
54
54
return t , fn , ok
55
55
}
56
56
57
- func (p * OperatorOverride ) findSuitableOperatorOverloadInTypes (l , r reflect.Type ) (reflect.Type , string , bool ) {
58
- for _ , fn := range p .Overrides {
57
+ func (p * OperatorOverloading ) findSuitableOperatorOverloadInTypes (l , r reflect.Type ) (reflect.Type , string , bool ) {
58
+ for _ , fn := range p .Overloads {
59
59
fnType , ok := p .Types [fn ]
60
60
if ! ok {
61
61
continue
@@ -72,8 +72,8 @@ func (p *OperatorOverride) findSuitableOperatorOverloadInTypes(l, r reflect.Type
72
72
return nil , "" , false
73
73
}
74
74
75
- func (p * OperatorOverride ) findSuitableOperatorOverloadInFunctions (l , r reflect.Type ) (reflect.Type , string , bool ) {
76
- for _ , fn := range p .Overrides {
75
+ func (p * OperatorOverloading ) findSuitableOperatorOverloadInFunctions (l , r reflect.Type ) (reflect.Type , string , bool ) {
76
+ for _ , fn := range p .Overloads {
77
77
fnType , ok := p .Functions [fn ]
78
78
if ! ok {
79
79
continue
@@ -101,8 +101,8 @@ func checkTypeSuits(t reflect.Type, l reflect.Type, r reflect.Type, firstInIndex
101
101
return nil , false
102
102
}
103
103
104
- func (p * OperatorOverride ) Check () {
105
- for _ , fn := range p .Overrides {
104
+ func (p * OperatorOverloading ) Check () {
105
+ for _ , fn := range p .Overloads {
106
106
fnType , foundType := p .Types [fn ]
107
107
fnFunc , foundFunc := p .Functions [fn ]
108
108
if ! foundFunc && (! foundType || fnType .Type .Kind () != reflect .Func ) {
0 commit comments