summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBradley Lewis <22850972+BradLewis@users.noreply.github.com>2025-12-30 09:11:44 +1100
committerGitHub <noreply@github.com>2025-12-30 09:11:44 +1100
commit16cd61e0f5ad5409f1747c24bdca545423892fdb (patch)
tree5c3cf75d2c3002b4a31a298733fd1a2f0956f11c /src
parente7b8ab905f842fd1996c6dec4f80ed0f615d5200 (diff)
parentddc4a61653f0dc620bfa565c598f92b840500a9a (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.odin5
-rw-r--r--src/server/completion.odin5
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)