aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-04-29 21:47:54 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-04-29 21:47:54 -0400
commitf04015c080b8e4e97166d6ac9356f818e766fc48 (patch)
treebcc23ff550c40e3719cd2a1b7c0aa6515d1da820 /std
parenta912c7d75f61fb127ff8552e7a10ffe4672ac1aa (diff)
downloadzig-f04015c080b8e4e97166d6ac9356f818e766fc48.tar.gz
zig-f04015c080b8e4e97166d6ac9356f818e766fc48.zip
zig fmt: comments before switch prong
Diffstat (limited to 'std')
-rw-r--r--std/zig/parser.zig8
-rw-r--r--std/zig/parser_test.zig15
2 files changed, 21 insertions, 2 deletions
diff --git a/std/zig/parser.zig b/std/zig/parser.zig
index aae34f39b1..454ab445ce 100644
--- a/std/zig/parser.zig
+++ b/std/zig/parser.zig
@@ -1536,10 +1536,11 @@ pub const Parser = struct {
continue;
}
+ const comments = try self.eatComments(arena);
const node = try arena.construct(ast.Node.SwitchCase {
.base = ast.Node {
.id = ast.Node.Id.SwitchCase,
- .before_comments = null,
+ .before_comments = comments,
.same_line_comment = null,
},
.items = ArrayList(&ast.Node).init(arena),
@@ -1551,6 +1552,7 @@ pub const Parser = struct {
try stack.append(State { .AssignmentExpressionBegin = OptionalCtx { .Required = &node.expr } });
try stack.append(State { .PointerPayload = OptionalCtx { .Optional = &node.payload } });
try stack.append(State { .SwitchCaseFirstItem = &node.items });
+
continue;
},
@@ -4123,7 +4125,9 @@ pub const Parser = struct {
ast.Node.Id.SwitchCase => {
const switch_case = @fieldParentPtr(ast.Node.SwitchCase, "base", base);
- try stack.append(RenderState { .PrintSameLineComment = switch_case.base.same_line_comment });
+ try self.renderComments(stream, base, indent);
+
+ try stack.append(RenderState { .PrintSameLineComment = base.same_line_comment });
try stack.append(RenderState { .Text = "," });
try stack.append(RenderState { .Expression = switch_case.expr });
if (switch_case.payload) |payload| {
diff --git a/std/zig/parser_test.zig b/std/zig/parser_test.zig
index e37cc72392..e70b6adb0a 100644
--- a/std/zig/parser_test.zig
+++ b/std/zig/parser_test.zig
@@ -1,3 +1,18 @@
+test "zig fmt: comments before switch prong" {
+ try testCanonical(
+ \\test "" {
+ \\ switch (err) {
+ \\ error.PathAlreadyExists => continue,
+ \\
+ \\ // comment 1
+ \\ // comment 2
+ \\ else => return err,
+ \\ }
+ \\}
+ \\
+ );
+}
+
test "zig fmt: same-line comment after switch prong" {
try testCanonical(
\\test "" {