zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 2b6589bd3b2d529c56220d762c6a95b7609ea768 (tree)
parent 99fea4431bdf927e2f17409d087243694e94918f
Author: Kendall Condon <goon.pri.low@gmail.com>
Date:   Tue, 29 Jul 2025 09:25:41 -0400

zig fmt: fix error sets with empty line before comma

Diffstat:
Mlib/std/zig/Ast/Render.zig | 7++++++-
Mlib/std/zig/parser_test.zig | 16++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/lib/std/zig/Ast/Render.zig b/lib/std/zig/Ast/Render.zig @@ -748,8 +748,13 @@ fn renderExpression(r: *Render, node: Ast.Node.Index, space: Space) Error!void { try renderToken(r, lbrace, .newline); var i = lbrace + 1; while (i < rbrace) : (i += 1) { + const tag = tree.tokenTag(i); + if (tag == .comma) { + assert(tree.tokenTag(i - 1) == .identifier); + continue; + } if (i > lbrace + 1) try renderExtraNewlineToken(r, i); - switch (tree.tokenTag(i)) { + switch (tag) { .doc_comment => try renderToken(r, i, .newline), .identifier => { try ais.pushSpace(.comma); diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig @@ -6822,6 +6822,22 @@ test "zig fmt: canonicalize stray backslashes in identifiers" { ); } +test "zig fmt: error set with extra newline before comma" { + try testTransform( + \\const E = error{ + \\ A + \\ + \\ , + \\}; + \\ + , + \\const E = error{ + \\ A, + \\}; + \\ + ); +} + test "recovery: top level" { try testError( \\test "" {inline}