diff options
| -rw-r--r-- | src/server/completion.odin | 2 | ||||
| -rw-r--r-- | tests/completions_test.odin | 22 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin index 282b7d7..d80e451 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 1883032..3c34603 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"}) +} |