From 26bb60d1441bbc133dbe5d4df8e4b78d79b0b479 Mon Sep 17 00:00:00 2001 From: Brad Lewis <22850972+BradLewis@users.noreply.github.com> Date: Wed, 2 Jul 2025 20:24:59 -0400 Subject: Add completions for enum slice elements --- src/server/analysis.odin | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/server/analysis.odin') diff --git a/src/server/analysis.odin b/src/server/analysis.odin index e7496da..9f7018f 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -3830,10 +3830,17 @@ unwrap_enum :: proc(ast_context: ^AstContext, node: ^ast.Expr) -> (SymbolEnumVal } if enum_symbol, ok := resolve_type_expression(ast_context, node); ok { - if enum_value, ok := enum_symbol.value.(SymbolEnumValue); ok { - return enum_value, true - } else if union_value, ok := enum_symbol.value.(SymbolUnionValue); ok { - return unwrap_super_enum(ast_context, union_value) + #partial switch value in enum_symbol.value { + case SymbolEnumValue: + return value, true + case SymbolUnionValue: + return unwrap_super_enum(ast_context, value) + case SymbolSliceValue: + return unwrap_enum(ast_context, value.expr) + case SymbolFixedArrayValue: + return unwrap_enum(ast_context, value.expr) + case SymbolDynamicArrayValue: + return unwrap_enum(ast_context, value.expr) } } -- cgit v1.2.3