aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2021-12-05 20:36:59 +0100
committerDaniel Gavin <danielgavin5@hotmail.com>2021-12-05 20:36:59 +0100
commitbbbff41f1b4edd5d227f291158191c214cf57706 (patch)
tree293881010a58bea022b9f0d53878d94e63ad3352 /src
parent8f73e4e4f64b46bee43fe659cad8ea4d505fb3f0 (diff)
Incorrect behavior where globals were not added as variables.
Diffstat (limited to 'src')
-rw-r--r--src/analysis/analysis.odin2
-rw-r--r--src/common/ast.odin2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/analysis/analysis.odin b/src/analysis/analysis.odin
index 1efcb13..ce94c4f 100644
--- a/src/analysis/analysis.odin
+++ b/src/analysis/analysis.odin
@@ -809,6 +809,8 @@ resolve_type_expression :: proc(ast_context: ^AstContext, node: ^ast.Expr) -> (i
return resolve_type_expression(ast_context, v.type);
case Auto_Cast:
return resolve_type_expression(ast_context, v.expr);
+ case Comp_Lit:
+ return resolve_type_expression(ast_context, v.type);
case Unary_Expr:
if v.op.kind == .And {
symbol, ok := resolve_type_expression(ast_context, v.expr);
diff --git a/src/common/ast.odin b/src/common/ast.odin
index 3f857cf..840d73b 100644
--- a/src/common/ast.odin
+++ b/src/common/ast.odin
@@ -60,7 +60,7 @@ collect_value_decl :: proc(exprs: ^[dynamic]GlobalExpr, file: ast.File, stmt: ^a
append(exprs, GlobalExpr {name = str, expr = value_decl.type, mutable = value_decl.is_mutable, docs = value_decl.docs, attributes = value_decl.attributes[:]});
} else {
if len(value_decl.values) > i {
- append(exprs, GlobalExpr {name = str, expr = value_decl.values[i], docs = value_decl.docs, attributes = value_decl.attributes[:]});
+ append(exprs, GlobalExpr {name = str, expr = value_decl.values[i], mutable = value_decl.is_mutable, docs = value_decl.docs, attributes = value_decl.attributes[:]});
}
}
}