aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/ast-tree.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-16 01:20:33 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-16 01:20:33 +0330
commit42eb5e5d3f10c3a9187dcf8edd7c023a3ea10dcd (patch)
tree78862ab27c3b1faf2d9ed5722bceb0264602bd1a /src/compiler/ast-tree.c
parent0b8d272292ca3f7fdb44efac65f012b484d962a2 (diff)
fix access operator and some stuff to make break work
Diffstat (limited to 'src/compiler/ast-tree.c')
-rw-r--r--src/compiler/ast-tree.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c
index 57f0568..1d0613b 100644
--- a/src/compiler/ast-tree.c
+++ b/src/compiler/ast-tree.c
@@ -4765,9 +4765,7 @@ bool setTypesReturn(AstTree *tree, AstTreeSetTypesHelper _helper,
astTreeDelete(helper.lookingType);
return false;
}
- if (helper.lookingType != function->returnType) {
- astTreeDelete(helper.lookingType);
- }
+ astTreeDelete(helper.lookingType);
if (!typeIsEqual(metadata->value->type, function->returnType)) {
printError(tree->str_begin, tree->str_end, "Type mismatch");
return false;
@@ -5530,7 +5528,7 @@ bool setTypesOperatorAccess(AstTree *tree, AstTreeSetTypesHelper helper) {
"Member not found");
return false;
} else if (typeIsEqual(metadata->object->type, &AST_TREE_NAMESPACE_TYPE)) {
- AstTree *value = getValue(metadata->object, false);
+ AstTree *value = getValue(metadata->object, true);
AstTreeNamespace *namespace = value->metadata;
AstTreeSetTypesHelper newHelper = {
.root = helper.root->imports[namespace->importedIndex].root,
@@ -5539,6 +5537,7 @@ bool setTypesOperatorAccess(AstTree *tree, AstTreeSetTypesHelper helper) {
.dependencies = helper.dependencies,
.lookingType = helper.lookingType,
};
+ astTreeDelete(value);
AstTreeVariable *var =
setTypesFindVariable(metadata->member.name.begin,