summaryrefslogtreecommitdiff
path: root/src/compiler/ast-tree.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-09 04:33:05 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-09 04:33:05 +0330
commit6a38b0247cff3be5ce2d0f725d559253357b4dc6 (patch)
tree1f305316cdc50fdb45c28eb0722effbb2491183f /src/compiler/ast-tree.c
parentde52585a1b2736a6a788ebc57000d7496f259e64 (diff)
fix leaks
fix printError
Diffstat (limited to 'src/compiler/ast-tree.c')
-rw-r--r--src/compiler/ast-tree.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c
index 8325b7f..0eea23d 100644
--- a/src/compiler/ast-tree.c
+++ b/src/compiler/ast-tree.c
@@ -343,19 +343,13 @@ AstTree *newAstTree(AstTreeToken token, void *metadata, AstTree *type) {
AstTree *copyAstTree(AstTree *tree) {
switch (tree->token) {
case AST_TREE_TOKEN_TYPE_TYPE:
- return &AST_TREE_TYPE_TYPE;
case AST_TREE_TOKEN_TYPE_VOID:
- return &AST_TREE_VOID_TYPE;
case AST_TREE_TOKEN_TYPE_U64:
- return &AST_TREE_U64_TYPE;
case AST_TREE_TOKEN_TYPE_BOOL:
- return &AST_TREE_BOOL_TYPE;
+ return tree;
case AST_TREE_TOKEN_VALUE_U64:
- return newAstTree(tree->token, (void *)(AstTreeU64)tree->metadata,
- &AST_TREE_U64_TYPE);
case AST_TREE_TOKEN_VALUE_BOOL:
- return newAstTree(tree->token, (void *)(AstTreeBool)tree->metadata,
- &AST_TREE_BOOL_TYPE);
+ return newAstTree(tree->token, tree->metadata, tree->type);
case AST_TREE_TOKEN_VARIABLE:
return newAstTree(tree->token, tree->metadata, copyAstTree(tree->type));
case AST_TREE_TOKEN_TYPE_FUNCTION: {