diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2018-04-30 18:30:47 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2018-04-30 18:30:47 -0400 |
| commit | eed49a210474af98f64961ed603feb6dfa60acde (patch) | |
| tree | 94d1ddbfc5aac38476ed1edd74b27f19b9767921 /std | |
| parent | 1d06915f275ac59918c32206ad944fd10cc997d4 (diff) | |
| download | zig-eed49a210474af98f64961ed603feb6dfa60acde.tar.gz zig-eed49a210474af98f64961ed603feb6dfa60acde.zip | |
zig fmt: aggregate type init with only 1 field
Diffstat (limited to 'std')
| -rw-r--r-- | std/zig/parser.zig | 9 | ||||
| -rw-r--r-- | std/zig/parser_test.zig | 14 |
2 files changed, 20 insertions, 3 deletions
diff --git a/std/zig/parser.zig b/std/zig/parser.zig index 12b1c315e8..5e3f3bff59 100644 --- a/std/zig/parser.zig +++ b/std/zig/parser.zig @@ -3872,6 +3872,15 @@ pub const Parser = struct { try stack.append(RenderState { .Expression = suffix_op.lhs }); continue; } + if (field_inits.len == 1) { + const field_init = field_inits.at(0); + + try stack.append(RenderState { .Text = "}" }); + try stack.append(RenderState { .FieldInitializer = field_init }); + try stack.append(RenderState { .Text = " {" }); + try stack.append(RenderState { .Expression = suffix_op.lhs }); + continue; + } try stack.append(RenderState { .Text = "}"}); try stack.append(RenderState.PrintIndent); try stack.append(RenderState { .Indent = indent }); diff --git a/std/zig/parser_test.zig b/std/zig/parser_test.zig index f8b89ebe44..8b0002e6bd 100644 --- a/std/zig/parser_test.zig +++ b/std/zig/parser_test.zig @@ -1,3 +1,12 @@ +test "zig fmt: aggregate type init with only 1 field" { + try testCanonical( + \\comptime { + \\ assert(bar(Payload {.A = 1234}) == -10); + \\} + \\ + ); +} + test "zig fmt: union(enum(u32)) with assigned enum values" { try testCanonical( \\const MultipleChoice = union(enum(u32)) { @@ -709,9 +718,7 @@ test "zig fmt: switch" { \\ Float: f64, \\ }; \\ - \\ const u = Union { - \\ .Int = 0, - \\ }; + \\ const u = Union {.Int = 0}; \\ switch (u) { \\ Union.Int => |int| {}, \\ Union.Float => |*float| unreachable, @@ -1029,6 +1036,7 @@ test "zig fmt: struct literals with fields on each line" { try testCanonical( \\var self = BufSet { \\ .hash_map = BufSetHashMap.init(a), + \\ .hash_map2 = xyz, \\}; \\ ); |
