summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-07 19:12:17 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-07 19:12:17 +0330
commitec346278c8f5155d7c044a26415cd4489d71a0af (patch)
treefb3d85fccce366157c27abb3da43ceba2f63ddb9
parent92bf7bf5de203eac51befc914dfddbc29d49351b (diff)
speed improvements
-rw-r--r--code/main.felan9
-rw-r--r--src/compiler/ast-tree.c11
2 files changed, 6 insertions, 14 deletions
diff --git a/code/main.felan b/code/main.felan
index 667adbe..f1e224c 100644
--- a/code/main.felan
+++ b/code/main.felan
@@ -24,16 +24,9 @@ array :: (t:type) -> type {
};
};
-array2 :: (t:type) -> type {
- return struct {
- ptr : *t;
- length : usize;
- };
-};
-
array_int :: array(u64);
array_int1 :: array(u64);
-array_int2 :: array2(u64);
+array_int2 :: array(i64);
main :: () -> void {
print_u64 (if array_int == array_int1 1 else 0);
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c
index d014f4a..5fa13ab 100644
--- a/src/compiler/ast-tree.c
+++ b/src/compiler/ast-tree.c
@@ -3517,12 +3517,11 @@ bool setTypesFunctionCall(AstTree *tree, AstTreeSetTypesHelper helper) {
bool setTypesVariable(AstTree *tree, AstTreeSetTypesHelper helper) {
AstTreeVariable *metadata = tree->metadata;
- if (setTypesAstVariable(metadata, helper)) {
- tree->type = copyAstTree(metadata->type);
- return true;
- } else {
+ if (!setTypesAstVariable(metadata, helper)) {
return false;
}
+ tree->type = copyAstTree(metadata->type);
+ return true;
}
bool setTypesOperatorAssign(AstTree *tree, AstTreeSetTypesHelper helper) {
@@ -3627,9 +3626,9 @@ bool setTypesOperatorDereference(AstTree *tree, AstTreeSetTypesHelper helper) {
}
bool setTypesVariableDefine(AstTree *tree, AstTreeSetTypesHelper helper) {
- AstTreeVariable *metadata = tree->metadata;
+ (void)helper;
tree->type = &AST_TREE_VOID_TYPE;
- return setTypesAstVariable(metadata, helper);
+ return true;
}
bool setTypesAstVariable(AstTreeVariable *variable,