zig fmt: fix error sets with empty line before comma

This commit is contained in:
Kendall Condon 2025-07-29 09:25:41 -04:00
parent 38262e0516
commit 21e95ed635
2 changed files with 22 additions and 1 deletions

View file

@ -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);

View file

@ -6901,6 +6901,22 @@ test "zig fmt: asm_legacy conversion with quoted identifier" {
);
}
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}