From 2b6589bd3b2d529c56220d762c6a95b7609ea768 Mon Sep 17 00:00:00 2001 From: Kendall Condon Date: Tue, 29 Jul 2025 09:25:41 -0400 Subject: [PATCH] zig fmt: fix error sets with empty line before comma --- lib/std/zig/Ast/Render.zig | 7 ++++++- lib/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 index ffb4f2bfb847c648f94d97111152e283352b3c49..121586a3bbd25f35f11580fd3422fad0941e2da4 100644 --- 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 index 53b3cf8eb879a0aa141fab3f1acb0d081dd4b0a7..b98207f904d5684ad900258cc38416a5fef6adb4 100644 --- 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} -- 2.54.0