authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-04-29 21:47:54-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-04-29 21:47:54-04:00
logf04015c080b8e4e97166d6ac9356f818e766fc48
treebcc23ff550c40e3719cd2a1b7c0aa6515d1da820
parenta912c7d75f61fb127ff8552e7a10ffe4672ac1aa

zig fmt: comments before switch prong


2 files changed, 21 insertions(+), 2 deletions(-)

std/zig/parser.zig+6-2
...@@ -1536,10 +1536,11 @@ pub const Parser = struct {...@@ -1536,10 +1536,11 @@ pub const Parser = struct {
1536 continue;1536 continue;
1537 }1537 }
15381538
1539 const comments = try self.eatComments(arena);
1539 const node = try arena.construct(ast.Node.SwitchCase {1540 const node = try arena.construct(ast.Node.SwitchCase {
1540 .base = ast.Node {1541 .base = ast.Node {
1541 .id = ast.Node.Id.SwitchCase,1542 .id = ast.Node.Id.SwitchCase,
1542 .before_comments = null,1543 .before_comments = comments,
1543 .same_line_comment = null,1544 .same_line_comment = null,
1544 },1545 },
1545 .items = ArrayList(&ast.Node).init(arena),1546 .items = ArrayList(&ast.Node).init(arena),
...@@ -1551,6 +1552,7 @@ pub const Parser = struct {...@@ -1551,6 +1552,7 @@ pub const Parser = struct {
1551 try stack.append(State { .AssignmentExpressionBegin = OptionalCtx { .Required = &node.expr } });1552 try stack.append(State { .AssignmentExpressionBegin = OptionalCtx { .Required = &node.expr } });
1552 try stack.append(State { .PointerPayload = OptionalCtx { .Optional = &node.payload } });1553 try stack.append(State { .PointerPayload = OptionalCtx { .Optional = &node.payload } });
1553 try stack.append(State { .SwitchCaseFirstItem = &node.items });1554 try stack.append(State { .SwitchCaseFirstItem = &node.items });
1555
1554 continue;1556 continue;
1555 },1557 },
15561558
...@@ -4123,7 +4125,9 @@ pub const Parser = struct {...@@ -4123,7 +4125,9 @@ pub const Parser = struct {
4123 ast.Node.Id.SwitchCase => {4125 ast.Node.Id.SwitchCase => {
4124 const switch_case = @fieldParentPtr(ast.Node.SwitchCase, "base", base);4126 const switch_case = @fieldParentPtr(ast.Node.SwitchCase, "base", base);
41254127
4126 try stack.append(RenderState { .PrintSameLineComment = switch_case.base.same_line_comment });4128 try self.renderComments(stream, base, indent);
4129
4130 try stack.append(RenderState { .PrintSameLineComment = base.same_line_comment });
4127 try stack.append(RenderState { .Text = "," });4131 try stack.append(RenderState { .Text = "," });
4128 try stack.append(RenderState { .Expression = switch_case.expr });4132 try stack.append(RenderState { .Expression = switch_case.expr });
4129 if (switch_case.payload) |payload| {4133 if (switch_case.payload) |payload| {
std/zig/parser_test.zig+15
...@@ -1,3 +1,18 @@...@@ -1,3 +1,18 @@
1test "zig fmt: comments before switch prong" {
2 try testCanonical(
3 \\test "" {
4 \\ switch (err) {
5 \\ error.PathAlreadyExists => continue,
6 \\
7 \\ // comment 1
8 \\ // comment 2
9 \\ else => return err,
10 \\ }
11 \\}
12 \\
13 );
14}
15
1test "zig fmt: same-line comment after switch prong" {16test "zig fmt: same-line comment after switch prong" {
2 try testCanonical(17 try testCanonical(
3 \\test "" {18 \\test "" {