aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2025-10-12 17:18:15 +0200
committerGitHub <noreply@github.com>2025-10-12 17:18:15 +0200
commit70641d032f662f6918926af8009b5bb7836535af (patch)
tree76f3ea78924aad12da0c93b82e1ab4d76635f001
parentcbb4e352197763b0475ed3be6650fc9fe08d9c99 (diff)
parent63a7bc0f648078da5b228298353a45c3f9d8d93c (diff)
Merge pull request #1090 from thetarnav/fix/free-and-clone-or-branch-expr
Free and clone Or_Branch_Expr
-rw-r--r--src/server/ast.odin3
-rw-r--r--src/server/clone.odin3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/server/ast.odin b/src/server/ast.odin
index b3e283c..c695816 100644
--- a/src/server/ast.odin
+++ b/src/server/ast.odin
@@ -830,6 +830,9 @@ free_ast_node :: proc(node: ^ast.Node, allocator: mem.Allocator) {
free_ast(n.y, allocator)
case ^ast.Or_Return_Expr:
free_ast(n.expr, allocator)
+ case ^ast.Or_Branch_Expr:
+ free_ast(n.expr, allocator)
+ free_ast(n.label, allocator)
case:
panic(fmt.aprintf("free Unhandled node kind: %v", node.derived))
}
diff --git a/src/server/clone.odin b/src/server/clone.odin
index aefc8a7..ab708cd 100644
--- a/src/server/clone.odin
+++ b/src/server/clone.odin
@@ -293,6 +293,9 @@ clone_node :: proc(node: ^ast.Node, allocator: mem.Allocator, unique_strings: ^m
case ^Or_Else_Expr:
r.x = clone_type(r.x, allocator, unique_strings)
r.y = clone_type(r.y, allocator, unique_strings)
+ case ^Or_Branch_Expr:
+ r.expr = clone_type(r.expr, allocator, unique_strings)
+ r.label = clone_type(r.label, allocator, unique_strings)
case ^Comment_Group:
list := make([dynamic]tokenizer.Token, 0, len(r.list), allocator)
for t in r.list {