diff options
| author | DanielGavin <danielgavin5@hotmail.com> | 2025-10-12 17:18:15 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-12 17:18:15 +0200 |
| commit | 70641d032f662f6918926af8009b5bb7836535af (patch) | |
| tree | 76f3ea78924aad12da0c93b82e1ab4d76635f001 | |
| parent | cbb4e352197763b0475ed3be6650fc9fe08d9c99 (diff) | |
| parent | 63a7bc0f648078da5b228298353a45c3f9d8d93c (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.odin | 3 | ||||
| -rw-r--r-- | src/server/clone.odin | 3 |
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 { |