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 {
15361536 continue;
15371537 }
15381538
1539 const comments = try self.eatComments(arena);
15391540 const node = try arena.construct(ast.Node.SwitchCase {
15401541 .base = ast.Node {
15411542 .id = ast.Node.Id.SwitchCase,
1542 .before_comments = null,
1543 .before_comments = comments,
15431544 .same_line_comment = null,
15441545 },
15451546 .items = ArrayList(&ast.Node).init(arena),
......@@ -1551,6 +1552,7 @@ pub const Parser = struct {
15511552 try stack.append(State { .AssignmentExpressionBegin = OptionalCtx { .Required = &node.expr } });
15521553 try stack.append(State { .PointerPayload = OptionalCtx { .Optional = &node.payload } });
15531554 try stack.append(State { .SwitchCaseFirstItem = &node.items });
1555
15541556 continue;
15551557 },
15561558
......@@ -4123,7 +4125,9 @@ pub const Parser = struct {
41234125 ast.Node.Id.SwitchCase => {
41244126 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 });
41274131 try stack.append(RenderState { .Text = "," });
41284132 try stack.append(RenderState { .Expression = switch_case.expr });
41294133 if (switch_case.payload) |payload| {
std/zig/parser_test.zig+15
......@@ -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
116test "zig fmt: same-line comment after switch prong" {
217 try testCanonical(
318 \\test "" {