diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/ast.odin | 1 | ||||
| -rw-r--r-- | src/server/clone.odin | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/common/ast.odin b/src/common/ast.odin index 267c84d..6e71f60 100644 --- a/src/common/ast.odin +++ b/src/common/ast.odin @@ -1086,6 +1086,7 @@ build_string_node :: proc( case ^Tag_Expr: build_string(n.expr, builder, remove_pointers) case ^Unary_Expr: + strings.write_string(builder, n.op.text) build_string(n.expr, builder, remove_pointers) case ^Binary_Expr: build_string(n.left, builder, remove_pointers) diff --git a/src/server/clone.odin b/src/server/clone.odin index 2057c98..507e753 100644 --- a/src/server/clone.odin +++ b/src/server/clone.odin @@ -180,7 +180,13 @@ clone_node :: proc( case ^Tag_Expr: r.expr = clone_type(r.expr, allocator, unique_strings) case ^Unary_Expr: + n := node.derived.(^Unary_Expr) r.expr = clone_type(r.expr, allocator, unique_strings) + if unique_strings == nil { + r.op.text = strings.clone(n.op.text, allocator) + } else { + r.op.text = get_index_unique_string(unique_strings, allocator, n.op.text) + } case ^Binary_Expr: n := node.derived.(^Binary_Expr) r.left = clone_type(r.left, allocator, unique_strings) |