diff options
Diffstat (limited to 'src/server/analysis.odin')
| -rw-r--r-- | src/server/analysis.odin | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 41c78d8..3c896fe 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -2301,6 +2301,16 @@ resolve_implicit_selector :: proc( Symbol, bool, ) { + if position_context.binary != nil { + if position_in_node(position_context.binary, position_context.position) { + // We resolve whichever is not the implicit_selector + if implicit, ok := position_context.binary.left.derived.(^ast.Implicit_Selector_Expr); ok { + return resolve_type_expression(ast_context, position_context.binary.right) + } + return resolve_type_expression(ast_context, position_context.binary.left) + } + } + if position_context.call != nil { if call, ok := position_context.call.derived.(^ast.Call_Expr); ok { parameter_index, parameter_ok := find_position_in_call_param(position_context, call^) @@ -2334,16 +2344,6 @@ resolve_implicit_selector :: proc( } } - if position_context.binary != nil { - if position_in_node(position_context.binary, position_context.position) { - // We resolve whichever is not the implicit_selector - if implicit, ok := position_context.binary.left.derived.(^ast.Implicit_Selector_Expr); ok { - return resolve_type_expression(ast_context, position_context.binary.right) - } - return resolve_type_expression(ast_context, position_context.binary.left) - } - } - if position_context.index != nil { symbol: Symbol ok := false |