From 16ff934662bc9286549df938d205175d183a2ede Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Sat, 30 Aug 2025 19:01:30 -0400 Subject: When resolving locals, don't resolve all possibilities for overloaded procs --- src/server/analysis.odin | 11 +++++++++-- src/server/locals.odin | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 9afdbc2..544ad6e 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -45,6 +45,7 @@ AstContext :: struct { non_mutable_only: bool, //Only store local value declarations that are non mutable. overloading: bool, position_hint: DocumentPositionContextHint, + resolving_locals: bool, } make_ast_context :: proc( @@ -621,8 +622,14 @@ resolve_function_overload :: proc(ast_context: ^AstContext, group: ast.Proc_Grou ast_context.overloading = false } - resolve_all_possibilities := - ast_context.position_hint == .Completion || ast_context.position_hint == .SignatureHelp || call_expr == nil + resolve_all_possibilities: bool + if ast_context.resolving_locals { + resolve_all_possibilities = false + } else { + resolve_all_possibilities = + ast_context.position_hint == .Completion || ast_context.position_hint == .SignatureHelp || call_expr == nil + } + call_unnamed_arg_count := 0 if call_expr != nil { diff --git a/src/server/locals.odin b/src/server/locals.odin index ac577b1..267a2a2 100644 --- a/src/server/locals.odin +++ b/src/server/locals.odin @@ -1026,6 +1026,9 @@ get_locals :: proc( ast_context: ^AstContext, document_position: ^DocumentPositionContext, ) { + ast_context.resolving_locals = true + defer ast_context.resolving_locals = false + proc_lit, ok := function.derived.(^ast.Proc_Lit) if !ok || proc_lit.body == nil { -- cgit v1.2.3