diff options
| author | Daniel Gavin <danielgavin5@hotmail.com> | 2022-10-27 13:21:00 +0200 |
|---|---|---|
| committer | Daniel Gavin <danielgavin5@hotmail.com> | 2022-10-27 13:21:00 +0200 |
| commit | 7415292f695102c94b6d97e8a28ffc99da71ac30 (patch) | |
| tree | bb9af9e309ea07d81067cef1cd7b69f8af0ab184 /src/server/analysis.odin | |
| parent | 2cf49d9cda4ec5ab480d71da3da37ee2b71fc6f4 (diff) | |
Handle typeid as a type
Diffstat (limited to 'src/server/analysis.odin')
| -rw-r--r-- | src/server/analysis.odin | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 42e02cd..7050471 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -1093,6 +1093,10 @@ internal_resolve_type_expression :: proc( using ast #partial switch v in node.derived { + case ^ast.Typeid_Type: + ident := new_type(ast.Ident, v.pos, v.end, context.temp_allocator) + ident.name = "typeid" + return make_symbol_basic_type_from_ast(ast_context, ident), true case ^ast.Value_Decl: if v.type != nil { return internal_resolve_type_expression(ast_context, v.type) @@ -2364,8 +2368,7 @@ make_symbol_map_from_ast :: proc( make_symbol_basic_type_from_ast :: proc( ast_context: ^AstContext, - n: ^ast.Node, - v: ^ast.Ident, + n: ^ast.Ident, ) -> Symbol { symbol := Symbol { range = common.get_token_range(n^, ast_context.file.src), @@ -2374,7 +2377,7 @@ make_symbol_basic_type_from_ast :: proc( } symbol.value = SymbolBasicValue { - ident = v, + ident = n, } return symbol |