diff options
Diffstat (limited to 'src/server/analysis.odin')
| -rw-r--r-- | src/server/analysis.odin | 12 |
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; } |