authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-05-26 15:37:47-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-05-26 15:37:47-04:00
log85ca611af1d7401dd336f4655a0ab15640cc8424
tree62a429a5f0ad0eb9f7d3cc2334442b0fa592d79f
parentc029f4bfc47b5d6d825f7ae7a3f224e9e9d6ce0b

zig fmt: put nested struct inits on newlines

See #1003

2 files changed, 18 insertions(+), 3 deletions(-)

std/zig/parser_test.zig+9
......@@ -1,3 +1,12 @@
1test "zig fmt: nested struct literal with one item" {
2 try testCanonical(
3 \\const a = foo{
4 \\ .item = bar{ .a = b },
5 \\};
6 \\
7 );
8}
9
110test "zig fmt: switch cases trailing comma" {
211 try testTransform(
312 \\fn switch_cases(x: i32) void {
std/zig/render.zig+9-3
......@@ -431,12 +431,18 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
431431 return;
432432 }
433433
434 if (field_inits.len == 1) {
435 const field_init = field_inits.at(0).*;
434 if (field_inits.len == 1) blk: {
435 const field_init = ??field_inits.at(0).*.cast(ast.Node.FieldInitializer);
436
437 if (field_init.expr.cast(ast.Node.SuffixOp)) |nested_suffix_op| {
438 if (nested_suffix_op.op == ast.Node.SuffixOp.Op.StructInitializer) {
439 break :blk;
440 }
441 }
436442
437443 try renderExpression(allocator, stream, tree, indent, suffix_op.lhs, Space.None);
438444 try renderToken(tree, stream, lbrace, indent, Space.Space);
439 try renderExpression(allocator, stream, tree, indent, field_init, Space.Space);
445 try renderExpression(allocator, stream, tree, indent, &field_init.base, Space.Space);
440446 try renderToken(tree, stream, suffix_op.rtoken, indent, space);
441447 return;
442448 }