aboutsummaryrefslogtreecommitdiff
path: root/src/analysis
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2021-12-07 16:39:50 +0100
committerDaniel Gavin <danielgavin5@hotmail.com>2021-12-07 16:39:50 +0100
commitca0bc6739213a2ef38aa79efc53b20793b00e1a1 (patch)
tree0ccef266ef6effad14bd866052abecd4631322ad /src/analysis
parentb37fc717c7ecc9a62e052c94a373fddde66352ad (diff)
More tests
Diffstat (limited to 'src/analysis')
-rw-r--r--src/analysis/analysis.odin11
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 "";