Skip to content

Commit 25c6f9b

Browse files
committed
zig fmt: fix error sets with empty line before comma
1 parent 5d32c3a commit 25c6f9b

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

lib/std/zig/Ast/Render.zig

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,8 +748,13 @@ fn renderExpression(r: *Render, node: Ast.Node.Index, space: Space) Error!void {
748748
try renderToken(r, lbrace, .newline);
749749
var i = lbrace + 1;
750750
while (i < rbrace) : (i += 1) {
751+
const tag = tree.tokenTag(i);
752+
if (tag == .comma) {
753+
assert(tree.tokenTag(i - 1) == .identifier);
754+
continue;
755+
}
751756
if (i > lbrace + 1) try renderExtraNewlineToken(r, i);
752-
switch (tree.tokenTag(i)) {
757+
switch (tag) {
753758
.doc_comment => try renderToken(r, i, .newline),
754759
.identifier => {
755760
try ais.pushSpace(.comma);

lib/std/zig/parser_test.zig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6891,6 +6891,22 @@ test "zig fmt: asm_legacy conversion with quoted identifier" {
68916891
);
68926892
}
68936893

6894+
test "zig fmt: error set with extra newline before comma" {
6895+
try testTransform(
6896+
\\const E = error{
6897+
\\ A
6898+
\\
6899+
\\ ,
6900+
\\};
6901+
\\
6902+
,
6903+
\\const E = error{
6904+
\\ A,
6905+
\\};
6906+
\\
6907+
);
6908+
}
6909+
68946910
test "recovery: top level" {
68956911
try testError(
68966912
\\test "" {inline}

0 commit comments

Comments
 (0)