zig

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

commit ee173d512721df521b5a29bc939770e098931e21 (tree)
parent 4ea7470417b7b0c1069a0bc67d93511d3c06a2bf
Author: g-w1 <58830309+g-w1@users.noreply.github.com>
Date:   Thu, 15 Jul 2021 03:55:22 -0400

parser: require block in suspend expression


Diffstat:
Mlib/std/zig/parse.zig | 6+-----
Mlib/std/zig/parser_test.zig | 15---------------
Mlib/std/zig/render.zig | 13++-----------
3 files changed, 3 insertions(+), 31 deletions(-)

diff --git a/lib/std/zig/parse.zig b/lib/std/zig/parse.zig @@ -885,11 +885,7 @@ const Parser = struct { }, .keyword_suspend => { const token = p.nextToken(); - // TODO remove this special case when 0.9.0 is released. - const block_expr: Node.Index = if (p.eatToken(.semicolon) != null) - 0 - else - try p.expectBlockExprStatement(); + const block_expr = try p.expectBlockExprStatement(); return p.addNode(.{ .tag = .@"suspend", .main_token = token, diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig @@ -93,21 +93,6 @@ test "zig fmt: rewrite callconv(.Inline) to the inline keyword" { } // TODO Remove this after zig 0.9.0 is released. -test "zig fmt: rewrite suspend without block expression" { - try testTransform( - \\fn foo() void { - \\ suspend; - \\} - \\ - , - \\fn foo() void { - \\ suspend {} - \\} - \\ - ); -} - -// TODO Remove this after zig 0.9.0 is released. test "zig fmt: rewrite @byteOffsetOf to @offsetOf" { try testTransform( \\fn foo() void { diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig @@ -275,17 +275,8 @@ fn renderExpression(gpa: *Allocator, ais: *Ais, tree: ast.Tree, node: ast.Node.I .@"suspend" => { const suspend_token = main_tokens[node]; const body = datas[node].lhs; - if (body != 0) { - try renderToken(ais, tree, suspend_token, .space); - return renderExpression(gpa, ais, tree, body, space); - } else { - // TODO remove this special case when 0.9.0 is released. - assert(space == .semicolon); - try renderToken(ais, tree, suspend_token, .space); - try ais.writer().writeAll("{}"); - try ais.insertNewline(); - return; - } + try renderToken(ais, tree, suspend_token, .space); + return renderExpression(gpa, ais, tree, body, space); }, .@"catch" => {