diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index 7c7ecd2499..73c4458352 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -291,6 +291,13 @@ test "zig fmt: break from block" { ); } +test "zig fmt: grouped expressions (parentheses)" { + try testCanonical( + \\const r = (x + y) * (a + b); + \\ + ); +} + //test "zig fmt: c pointer type" { // try testCanonical( // \\pub extern fn repro() [*c]const u8; diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig index dd1c6d62f8..b1ff7ff64b 100644 --- a/lib/std/zig/render.zig +++ b/lib/std/zig/render.zig @@ -517,17 +517,11 @@ fn renderExpression(ais: *Ais, tree: ast.Tree, node: ast.Node.Index, space: Spac } }, - .GroupedExpression => unreachable, // TODO - //.GroupedExpression => { - // const grouped_expr = @fieldParentPtr(ast.Node.GroupedExpression, "base", base); - - // try renderToken(ais, tree, grouped_expr.lparen, Space.None); - // { - // ais.pushIndentOneShot(); - // try renderExpression(ais, tree, grouped_expr.expr, Space.None); - // } - // return renderToken(ais, tree, grouped_expr.rparen, space); - //}, + .GroupedExpression => { + try renderToken(ais, tree, main_tokens[node], .None); + try renderExpression(ais, tree, datas[node].lhs, .None); + return renderToken(ais, tree, datas[node].rhs, space); + }, .ContainerDecl, .ContainerDeclComma,