aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2018-05-25 02:19:53 -0400
committerAndrew Kelley <superjoe30@gmail.com>2018-05-25 02:19:53 -0400
commita630d3e851a62c0e8971cbd2183e215606f35ab1 (patch)
tree49d75e0e2a5df49b7e89712e07eeb1dcf552db4a
parent56cb7f1740bf369b7cd2cac29db559c5c6bccc22 (diff)
downloadzig-a630d3e851a62c0e8971cbd2183e215606f35ab1.tar.gz
zig-a630d3e851a62c0e8971cbd2183e215606f35ab1.zip
zig fmt: fix rendering of align keyword of slice type
-rw-r--r--std/zig/parser_test.zig9
-rw-r--r--std/zig/render.zig12
2 files changed, 15 insertions, 6 deletions
diff --git a/std/zig/parser_test.zig b/std/zig/parser_test.zig
index cabfb48387..ada132e775 100644
--- a/std/zig/parser_test.zig
+++ b/std/zig/parser_test.zig
@@ -1,3 +1,12 @@
+test "zig fmt: slice align" {
+ try testCanonical(
+ \\const A = struct {
+ \\ items: []align(A) T,
+ \\};
+ \\
+ );
+}
+
test "zig fmt: first thing in file is line comment" {
try testTransform(
\\comptime {
diff --git a/std/zig/render.zig b/std/zig/render.zig
index 61c66aaaf8..215e57ceb8 100644
--- a/std/zig/render.zig
+++ b/std/zig/render.zig
@@ -268,10 +268,10 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
ast.Node.PrefixOp.Op.AddrOf => |addr_of_info| {
try renderToken(tree, stream, prefix_op_node.op_token, indent, Space.None); // &
if (addr_of_info.align_info) |align_info| {
- const align_token = tree.nextToken(prefix_op_node.op_token);
- try renderToken(tree, stream, align_token, indent, Space.None); // align
-
const lparen_token = tree.prevToken(align_info.node.firstToken());
+ const align_token = tree.prevToken(lparen_token);
+
+ try renderToken(tree, stream, align_token, indent, Space.None); // align
try renderToken(tree, stream, lparen_token, indent, Space.None); // (
try renderExpression(allocator, stream, tree, indent, align_info.node, Space.None);
@@ -305,10 +305,10 @@ fn renderExpression(allocator: &mem.Allocator, stream: var, tree: &ast.Tree, ind
try renderToken(tree, stream, tree.nextToken(prefix_op_node.op_token), indent, Space.None); // ]
if (addr_of_info.align_info) |align_info| {
- const align_token = tree.nextToken(prefix_op_node.op_token);
- try renderToken(tree, stream, align_token, indent, Space.None); // align
-
const lparen_token = tree.prevToken(align_info.node.firstToken());
+ const align_token = tree.prevToken(lparen_token);
+
+ try renderToken(tree, stream, align_token, indent, Space.None); // align
try renderToken(tree, stream, lparen_token, indent, Space.None); // (
try renderExpression(allocator, stream, tree, indent, align_info.node, Space.None);