authorgravatar for tobias.simetsreiter@wabtec.comTobias Simetsreiter <tobias.simetsreiter@wabtec.com> 2023-10-18 01:04:01+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2023-10-17 19:04:01-04:00
log7a9500fd80990a3dc47821e627162bf769eecbba
treeb4c7d59c0815b5222b8f9270fc6897beaacde563
parentf58811a58a592a4e5844e66919b18211dc5f6e59
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Fix rendering ast in zon mode (#17547)

Co-authored-by: Tobias Simetsreiter <tobias.simetsreiter@wabtec.com>

3 files changed, 14 insertions(+), 1 deletions(-)

lib/std/zig/Ast.zig+2
......@@ -12,6 +12,7 @@ tokens: TokenList.Slice,
1212/// references to the root node, this means 0 is available to indicate null.
1313nodes: NodeList.Slice,
1414extra_data: []Node.Index,
15mode: Mode = .zig,
1516
1617errors: []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+11-1
......@@ -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+1
......@@ -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