Skip to content

Commit 7a9500f

Browse files
dasimmetTobias Simetsreiter
and
Tobias Simetsreiter
authored
Fix rendering ast in zon mode (#17547)
Co-authored-by: Tobias Simetsreiter <[email protected]>
1 parent f58811a commit 7a9500f

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

lib/std/zig/Ast.zig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ tokens: TokenList.Slice,
1212
/// references to the root node, this means 0 is available to indicate null.
1313
nodes: NodeList.Slice,
1414
extra_data: []Node.Index,
15+
mode: Mode = .zig,
1516

1617
errors: []const Error,
1718

@@ -96,6 +97,7 @@ pub fn parse(gpa: Allocator, source: [:0]const u8, mode: Mode) Allocator.Error!A
9697
// TODO experiment with compacting the MultiArrayList slices here
9798
return Ast{
9899
.source = source,
100+
.mode = mode,
99101
.tokens = tokens.toOwnedSlice(),
100102
.nodes = parser.nodes.toOwnedSlice(),
101103
.extra_data = try parser.extra_data.toOwnedSlice(gpa),

lib/std/zig/render.zig

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,17 @@ pub fn renderTree(buffer: *std.ArrayList(u8), tree: Ast) Error!void {
3030
try renderContainerDocComments(ais, tree, 0);
3131
}
3232

33-
try renderMembers(buffer.allocator, ais, tree, tree.rootDecls());
33+
if (tree.mode == .zon) {
34+
try renderExpression(
35+
buffer.allocator,
36+
ais,
37+
tree,
38+
tree.nodes.items(.data)[0].lhs,
39+
.newline,
40+
);
41+
} else {
42+
try renderMembers(buffer.allocator, ais, tree, tree.rootDecls());
43+
}
3444

3545
if (ais.disabled_offset) |disabled_offset| {
3646
try writeFixingWhitespace(ais.underlying_writer, tree.source[disabled_offset..]);

src/translate_c/ast.zig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,7 @@ pub fn render(gpa: Allocator, nodes: []const Node) !std.zig.Ast {
794794
.nodes = ctx.nodes.toOwnedSlice(),
795795
.extra_data = try ctx.extra_data.toOwnedSlice(gpa),
796796
.errors = &.{},
797+
.mode = .zig,
797798
};
798799
}
799800

0 commit comments

Comments
 (0)