authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2019-10-15 14:06:08+03:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-10-15 17:58:02-04:00
log7495fd8cb9eea3d571ec62eff069b443ac0e3a6a
tree06d54e8fadb3033ccf058dee64ef806ddfde52b4
parentf7f3dedb1de405e0123c93a4a9e54503e02942ee

fix struct align fmt


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

lib/std/zig/parser_test.zig+6
...@@ -173,6 +173,12 @@ test "zig fmt: aligned struct field" {...@@ -173,6 +173,12 @@ test "zig fmt: aligned struct field" {
173 \\};173 \\};
174 \\174 \\
175 );175 );
176 try testCanonical(
177 \\pub const S = struct {
178 \\ f: i32 align(32) = 1,
179 \\};
180 \\
181 );
176}182}
177183
178test "zig fmt: preserve space between async fn definitions" {184test "zig fmt: preserve space between async fn definitions" {
lib/std/zig/render.zig+15-3
...@@ -272,7 +272,7 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i...@@ -272,7 +272,7 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
272 try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align272 try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align
273 try renderToken(tree, stream, lparen_token, indent, start_col, Space.None); // (273 try renderToken(tree, stream, lparen_token, indent, start_col, Space.None); // (
274 try renderExpression(allocator, stream, tree, indent, start_col, align_value_expr, Space.None); // alignment274 try renderExpression(allocator, stream, tree, indent, start_col, align_value_expr, Space.None); // alignment
275 try renderToken(tree, stream, rparen_token, indent, start_col, Space.Comma); // )275 try renderToken(tree, stream, rparen_token, indent, start_col, Space.Comma); // ),
276 } else {276 } else {
277 try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Comma); // type,277 try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Comma); // type,
278 }278 }
...@@ -283,8 +283,20 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i...@@ -283,8 +283,20 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
283 } else {283 } else {
284 try renderToken(tree, stream, field.name_token, indent, start_col, Space.None); // name284 try renderToken(tree, stream, field.name_token, indent, start_col, Space.None); // name
285 try renderToken(tree, stream, tree.nextToken(field.name_token), indent, start_col, Space.Space); // :285 try renderToken(tree, stream, tree.nextToken(field.name_token), indent, start_col, Space.Space); // :
286 try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Space); // type286
287 try renderToken(tree, stream, tree.nextToken(field.type_expr.?.lastToken()), indent, start_col, Space.Space); // =287 if (field.align_expr) |align_value_expr| {
288 try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Space); // type
289 const lparen_token = tree.prevToken(align_value_expr.firstToken());
290 const align_kw = tree.prevToken(lparen_token);
291 const rparen_token = tree.nextToken(align_value_expr.lastToken());
292 try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align
293 try renderToken(tree, stream, lparen_token, indent, start_col, Space.None); // (
294 try renderExpression(allocator, stream, tree, indent, start_col, align_value_expr, Space.None); // alignment
295 try renderToken(tree, stream, rparen_token, indent, start_col, Space.Space); // )
296 } else {
297 try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Space); // type
298 }
299 try renderToken(tree, stream, tree.prevToken(field.value_expr.?.firstToken()), indent, start_col, Space.Space); // =
288 return renderExpression(allocator, stream, tree, indent, start_col, field.value_expr.?, Space.Comma); // value,300 return renderExpression(allocator, stream, tree, indent, start_col, field.value_expr.?, Space.Comma); // value,
289 }301 }
290 },302 },