summaryrefslogtreecommitdiff
path: root/src/compiler/ast-tree.c
diff options
context:
space:
mode:
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: {