authorgravatar for carl@astholm.seCarl Åstholm <carl@astholm.se> 2024-02-17 19:25:43+01:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2024-02-18 12:36:04+02:00
log3cafb9655a754743da695af41ef635b79d066127
tree50b2820164a9ce5650073ac58f88ce3ca32c880e
parentab6317d32bdc004e50cc4750ba9a89c9d81e05df

zig fmt: Preserve trailing comma after single-item switch case


2 files changed, 10 insertions(+), 4 deletions(-)

lib/std/zig/parser_test.zig+10-1
......@@ -2230,6 +2230,10 @@ test "zig fmt: switch cases trailing comma" {
22302230 \\ 1,2,3 => {},
22312231 \\ 4,5, => {},
22322232 \\ 6... 8, => {},
2233 \\ 9 ...
2234 \\ 10 => {},
2235 \\ 11 => {},
2236 \\ 12, => {},
22332237 \\ else => {},
22342238 \\ }
22352239 \\}
......@@ -2240,7 +2244,12 @@ test "zig fmt: switch cases trailing comma" {
22402244 \\ 4,
22412245 \\ 5,
22422246 \\ => {},
2243 \\ 6...8 => {},
2247 \\ 6...8,
2248 \\ => {},
2249 \\ 9...10 => {},
2250 \\ 11 => {},
2251 \\ 12,
2252 \\ => {},
22442253 \\ else => {},
22452254 \\ }
22462255 \\}
lib/std/zig/render.zig-3
......@@ -1894,9 +1894,6 @@ fn renderSwitchCase(
18941894 // Render everything before the arrow
18951895 if (switch_case.ast.values.len == 0) {
18961896 try renderToken(r, switch_case.ast.arrow_token - 1, .space); // else keyword
1897 } else if (switch_case.ast.values.len == 1 and !has_comment_before_arrow) {
1898 // render on one line and drop the trailing comma if any
1899 try renderExpression(r, switch_case.ast.values[0], .space);
19001897 } else if (trailing_comma or has_comment_before_arrow) {
19011898 // Render each value on a new line
19021899 try renderExpressions(r, switch_case.ast.values, .comma);