From 65ccfcfb613513e404f37d344943a0b4e1bbe66d Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Tue, 23 Dec 2025 12:52:34 +1100 Subject: [PATCH] Fix completions for implicit selector proc args with default values --- src/server/completion.odin | 2 ++ tests/completions_test.odin | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/server/completion.odin b/src/server/completion.odin index 282b7d77..d80e451f 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -1435,6 +1435,8 @@ get_implicit_completion :: proc( type = comp_lit.type } else if selector, ok := arg_type.default_value.derived.(^ast.Selector_Expr); ok { type = selector.expr + } else { + type = arg_type.default_value } } diff --git a/tests/completions_test.odin b/tests/completions_test.odin index 1883032d..3c34603c 100644 --- a/tests/completions_test.odin +++ b/tests/completions_test.odin @@ -5216,3 +5216,25 @@ ast_completion_implicit_selector_binary_expr_proc_call :: proc(t: ^testing.T) { } test.expect_completion_labels(t, &source, "", {"A", "B", "C"}, {"X", "Y"}) } + +@(test) +ast_completion_proc_arg_default_enum_alias :: proc(t: ^testing.T) { + source := test.Source { + main = `package test + Foo :: enum { + A, + B, + } + + Bar :: Foo.A + + foo :: proc(f := Bar) {} + + main :: proc() { + foo(.{*}) + } + + `, + } + test.expect_completion_docs(t, &source, "", {"A", "B"}) +}