aboutsummaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-15 13:11:23 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-15 13:11:23 +0330
commitf8f1c956b1592a737c9318624e0fc2b4231bd782 (patch)
treea2ae08815de3e38fd7b7b343aa881d99a341584c /src/compiler
parentebe981b03447877dff6eec263953c48943a5c426 (diff)
fix some type bugs
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/ast-tree.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c
index 5d9e25f..057a233 100644
--- a/src/compiler/ast-tree.c
+++ b/src/compiler/ast-tree.c
@@ -5277,11 +5277,8 @@ bool setTypesAstVariable(AstTreeVariable *variable,
AstTreeSetTypesHelper helper = {
.lookingType = &AST_TREE_TYPE_TYPE,
- .dependencies =
- {
- .data = deps,
- .size = _helper.dependencies.size + 1,
- },
+ .dependencies.data = deps,
+ .dependencies.size = _helper.dependencies.size + 1,
.variables = _helper.variables,
.root = _helper.root,
};
@@ -5298,7 +5295,11 @@ bool setTypesAstVariable(AstTreeVariable *variable,
return false;
}
- if (!isConst(variable->type)) {
+ if (isConst(variable->type)) {
+ AstTree *tmp = variable->type;
+ variable->type = getValue(variable->type);
+ astTreeDelete(tmp);
+ } else {
printError(variable->name_begin, variable->name_end,
"Type must be comptime");
return false;