From 1253903fef07d7fd0435310f474bfe2745b41405 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 22 Feb 2021 21:33:21 -0700 Subject: [PATCH] zig fmt: struct literal containing a multiline expression I modified this test case to expect different results. Now, the trailing comma on a list of struct fields is the only deciding factor, not whether or not the field init expressions contain a newline. --- lib/std/zig/parser_test.zig | 105 +++++++++++++++++++++--------------- 1 file changed, 61 insertions(+), 44 deletions(-) diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index dd2755b8ab..4aa6d95b30 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -1594,50 +1594,67 @@ test "zig fmt: struct literal no trailing comma" { ); } -//test "zig fmt: struct literal containing a multiline expression" { -// try testTransform( -// \\const a = A{ .x = if (f1()) 10 else 20 }; -// \\const a = A{ .x = if (f1()) 10 else 20, }; -// \\const a = A{ .x = if (f1()) -// \\ 10 else 20 }; -// \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100 }; -// \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100, }; -// \\const a = A{ .x = if (f1()) -// \\ 10 else 20}; -// \\const a = A{ .x = switch(g) {0 => "ok", else => "no"} }; -// \\ -// , -// \\const a = A{ .x = if (f1()) 10 else 20 }; -// \\const a = A{ -// \\ .x = if (f1()) 10 else 20, -// \\}; -// \\const a = A{ -// \\ .x = if (f1()) -// \\ 10 -// \\ else -// \\ 20, -// \\}; -// \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100 }; -// \\const a = A{ -// \\ .x = if (f1()) 10 else 20, -// \\ .y = f2() + 100, -// \\}; -// \\const a = A{ -// \\ .x = if (f1()) -// \\ 10 -// \\ else -// \\ 20, -// \\}; -// \\const a = A{ -// \\ .x = switch (g) { -// \\ 0 => "ok", -// \\ else => "no", -// \\ }, -// \\}; -// \\ -// ); -//} -// +test "zig fmt: struct literal containing a multiline expression" { + try testTransform( + \\const a = A{ .x = if (f1()) 10 else 20 }; + \\const a = A{ .x = if (f1()) 10 else 20, }; + \\const a = A{ .x = if (f1()) + \\ 10 else 20 }; + \\const a = A{ .x = if (f1()) + \\ 10 else 20,}; + \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100 }; + \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100, }; + \\const a = A{ .x = if (f1()) + \\ 10 else 20}; + \\const a = A{ .x = if (f1()) + \\ 10 else 20,}; + \\const a = A{ .x = switch(g) {0 => "ok", else => "no"} }; + \\const a = A{ .x = switch(g) {0 => "ok", else => "no"}, }; + \\ + , + \\const a = A{ .x = if (f1()) 10 else 20 }; + \\const a = A{ + \\ .x = if (f1()) 10 else 20, + \\}; + \\const a = A{ .x = if (f1()) + \\ 10 + \\else + \\ 20 }; + \\const a = A{ + \\ .x = if (f1()) + \\ 10 + \\ else + \\ 20, + \\}; + \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100 }; + \\const a = A{ + \\ .x = if (f1()) 10 else 20, + \\ .y = f2() + 100, + \\}; + \\const a = A{ .x = if (f1()) + \\ 10 + \\else + \\ 20 }; + \\const a = A{ + \\ .x = if (f1()) + \\ 10 + \\ else + \\ 20, + \\}; + \\const a = A{ .x = switch (g) { + \\ 0 => "ok", + \\ else => "no", + \\} }; + \\const a = A{ + \\ .x = switch (g) { + \\ 0 => "ok", + \\ else => "no", + \\ }, + \\}; + \\ + ); +} + //test "zig fmt: array literal with hint" { // try testTransform( // \\const a = []u8{