zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 5d94e754f4159277a2cef98d0c4226bab0e697a3 (tree)
parent 83e0a49ba4938fb90b27c01ce9adc3dbe2984164
Author: Jacob G-W <jacoblevgw@gmail.com>
Date:   Thu,  3 Jun 2021 22:30:31 -0400

fmt: fix #8974

also add a regression test

Diffstat:
Mlib/std/zig/parser_test.zig | 7+++++++
Mlib/std/zig/render.zig | 20+++++++++++---------
2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig @@ -4409,6 +4409,13 @@ test "zig fmt: regression test for #5722" { ); } +test "zig fmt: regression test for #8974" { + try testCanonical( + \\pub const VARIABLE; + \\ + ); +} + test "zig fmt: allow trailing line comments to do manual array formatting" { try testCanonical( \\fn foo() void { diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig @@ -989,16 +989,18 @@ fn renderVarDecl(gpa: *Allocator, ais: *Ais, tree: ast.Tree, var_decl: ast.full. } } - assert(var_decl.ast.init_node != 0); - const eq_token = tree.firstToken(var_decl.ast.init_node) - 1; - const eq_space: Space = if (tree.tokensOnSameLine(eq_token, eq_token + 1)) .space else .newline; - { - ais.pushIndent(); - try renderToken(ais, tree, eq_token, eq_space); // = - ais.popIndent(); + if (var_decl.ast.init_node != 0) { + const eq_token = tree.firstToken(var_decl.ast.init_node) - 1; + const eq_space: Space = if (tree.tokensOnSameLine(eq_token, eq_token + 1)) .space else .newline; + { + ais.pushIndent(); + try renderToken(ais, tree, eq_token, eq_space); // = + ais.popIndent(); + } + ais.pushIndentOneShot(); + return renderExpression(gpa, ais, tree, var_decl.ast.init_node, .semicolon); // ; } - ais.pushIndentOneShot(); - try renderExpression(gpa, ais, tree, var_decl.ast.init_node, .semicolon); + return renderToken(ais, tree, var_decl.ast.mut_token + 2, .newline); // ; } fn renderIf(gpa: *Allocator, ais: *Ais, tree: ast.Tree, if_node: ast.full.If, space: Space) Error!void {