diff options
| author | Bradley Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-12-30 09:11:44 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-30 09:11:44 +1100 |
| commit | 16cd61e0f5ad5409f1747c24bdca545423892fdb (patch) | |
| tree | 5c3cf75d2c3002b4a31a298733fd1a2f0956f11c /src | |
| parent | e7b8ab905f842fd1996c6dec4f80ed0f615d5200 (diff) | |
| parent | ddc4a61653f0dc620bfa565c598f92b840500a9a (diff) | |
Merge pull request #1238 from BradLewis/fix/completions-bit-set-proc-group
Improve bitset completions with proc groups
Diffstat (limited to 'src')
| -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) |