diff options
| author | Daniel Gavin <danielgavin5@hotmail.com> | 2021-12-07 16:39:50 +0100 |
|---|---|---|
| committer | Daniel Gavin <danielgavin5@hotmail.com> | 2021-12-07 16:39:50 +0100 |
| commit | ca0bc6739213a2ef38aa79efc53b20793b00e1a1 (patch) | |
| tree | 0ccef266ef6effad14bd866052abecd4631322ad /src/analysis | |
| parent | b37fc717c7ecc9a62e052c94a373fddde66352ad (diff) | |
More tests
Diffstat (limited to 'src/analysis')
| -rw-r--r-- | src/analysis/analysis.odin | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/analysis/analysis.odin b/src/analysis/analysis.odin index ce94c4f..11e3e58 100644 --- a/src/analysis/analysis.odin +++ b/src/analysis/analysis.odin @@ -779,6 +779,7 @@ resolve_basic_lit :: proc(ast_context: ^AstContext, basic_lit: ast.Basic_Lit) -> value.type = .String; } + symbol.pkg = ast_context.current_package symbol.value = value; return symbol, true; @@ -792,7 +793,7 @@ resolve_type_expression :: proc(ast_context: ^AstContext, node: ^ast.Expr) -> (i using ast; - switch v in node.derived { + switch v in &node.derived { case Array_Type: return make_symbol_array_from_ast(ast_context, v), true; case Dynamic_Array_Type: @@ -801,6 +802,8 @@ resolve_type_expression :: proc(ast_context: ^AstContext, node: ^ast.Expr) -> (i return make_symbol_map_from_ast(ast_context, v), true; case Proc_Type: return make_symbol_procedure_from_ast(ast_context, node, v, ast_context.field_name), true; + case Binary_Expr: + return resolve_first_symbol_from_binary_expression(ast_context, &v); case Ident: return resolve_type_identifier(ast_context, v); case Basic_Lit: @@ -2316,6 +2319,12 @@ get_signature :: proc(ast_context: ^AstContext, ident: ast.Ident, symbol: index. case SymbolPackageValue: return "package"; case SymbolUntypedValue: + switch v.type { + case .Float: return "float" + case .String: return "string" + case .Bool: return "bool" + case .Integer: return "int" + } } return ""; |