@@ -126,26 +126,30 @@ func (t *TypeScopeResolver) ExitClassDeclaration(ctx *parser.ClassDeclarationCon
126
126
// EnterOperatorOverloading is called when production operatorOverloading is entered.
127
127
func (t * TypeScopeResolver ) EnterOperatorOverloading (ctx * parser.OperatorOverloadingContext ) {
128
128
var opOverload * symbol.OpOverload
129
+ function , ok := t .currentScope ().(* symbol.Func )
130
+ if ! ok || function .GetName () != symbol .OperName {
131
+ return
132
+ }
129
133
if ctx .PLUS () != nil {
130
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .PLUS ().GetSymbol ().GetTokenType ())
134
+ opOverload = symbol .NewOpOverload (function , ctx .PLUS ().GetSymbol ().GetTokenType ())
131
135
} else if ctx .SUB () != nil {
132
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .SUB ().GetSymbol ().GetTokenType ())
136
+ opOverload = symbol .NewOpOverload (function , ctx .SUB ().GetSymbol ().GetTokenType ())
133
137
} else if ctx .MULT () != nil {
134
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .MULT ().GetSymbol ().GetTokenType ())
138
+ opOverload = symbol .NewOpOverload (function , ctx .MULT ().GetSymbol ().GetTokenType ())
135
139
} else if ctx .DIV () != nil {
136
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .DIV ().GetSymbol ().GetTokenType ())
140
+ opOverload = symbol .NewOpOverload (function , ctx .DIV ().GetSymbol ().GetTokenType ())
137
141
} else if ctx .EQUAL () != nil {
138
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .EQUAL ().GetSymbol ().GetTokenType ())
142
+ opOverload = symbol .NewOpOverload (function , ctx .EQUAL ().GetSymbol ().GetTokenType ())
139
143
} else if ctx .NOTEQUAL () != nil {
140
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .NOTEQUAL ().GetSymbol ().GetTokenType ())
144
+ opOverload = symbol .NewOpOverload (function , ctx .NOTEQUAL ().GetSymbol ().GetTokenType ())
141
145
} else if ctx .GT () != nil {
142
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .GT ().GetSymbol ().GetTokenType ())
146
+ opOverload = symbol .NewOpOverload (function , ctx .GT ().GetSymbol ().GetTokenType ())
143
147
} else if ctx .LT () != nil {
144
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .LT ().GetSymbol ().GetTokenType ())
148
+ opOverload = symbol .NewOpOverload (function , ctx .LT ().GetSymbol ().GetTokenType ())
145
149
} else if ctx .GE () != nil {
146
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .GE ().GetSymbol ().GetTokenType ())
150
+ opOverload = symbol .NewOpOverload (function , ctx .GE ().GetSymbol ().GetTokenType ())
147
151
} else if ctx .LE () != nil {
148
- opOverload = symbol .NewOpOverload (t . currentScope ().( * symbol. Func ) , ctx .LE ().GetSymbol ().GetTokenType ())
152
+ opOverload = symbol .NewOpOverload (function , ctx .LE ().GetSymbol ().GetTokenType ())
149
153
}
150
154
if opOverload != nil {
151
155
t .at .AppendOpOverload (opOverload )
0 commit comments