motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit 1253903fef07d7fd0435310f474bfe2745b41405 (tree)
parent 8379fff80455f89f9673638642cf506cb73c4241
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Mon, 22 Feb 2021 21:33:21 -0700

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.

Diffstat:
Mlib/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 @@ -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{