aboutsummaryrefslogtreecommitdiff
path: root/src/server/analysis.odin
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/analysis.odin')
-rw-r--r--src/server/analysis.odin12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 2e95c3a..c8c1827 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -1164,11 +1164,19 @@ make_symbol_union_from_ast :: proc (ast_context: ^AstContext, v: ast.Union_Type,
if ident, ok := variant.derived.(ast.Ident); ok {
append(&names, ident.name);
}
+
+ else if selector, ok := variant.derived.(ast.Selector_Expr); ok {
+
+ if ident, ok := selector.field.derived.(ast.Ident); ok {
+ append(&names, ident.name);
+ }
+ }
}
symbol.value = index.SymbolUnionValue {
- names = names[:]
- };
+ names = names[:],
+ types = v.variants,
+ };
return symbol;
}