diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/analysis.odin | 5 | ||||
| -rw-r--r-- | src/server/completion.odin | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 2c7f4f4..3ced0ad 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -2451,6 +2451,11 @@ resolve_implicit_selector :: proc( 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^) + old := ast_context.resolve_specific_overload + ast_context.resolve_specific_overload = true + defer { + ast_context.resolve_specific_overload = old + } if symbol, ok := resolve_type_expression(ast_context, call.expr); ok && parameter_ok { if proc_value, ok := symbol.value.(SymbolProcedureValue); ok { if len(proc_value.arg_types) <= parameter_index { diff --git a/src/server/completion.odin b/src/server/completion.odin index 2fcd7be..31ecf0e 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -1423,6 +1423,11 @@ get_implicit_completion :: proc( 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^) + old := ast_context.resolve_specific_overload + ast_context.resolve_specific_overload = true + defer { + ast_context.resolve_specific_overload = old + } if symbol, ok := resolve_type_expression(ast_context, call.expr); ok && parameter_ok { set_ast_package_set_scoped(ast_context, symbol.pkg) |