authorgravatar for 58830309+g-w1@users.noreply.github.comg-w1 <58830309+g-w1@users.noreply.github.com> 2021-07-15 03:55:22-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2021-07-15 10:55:22+03:00
logee173d512721df521b5a29bc939770e098931e21
tree4e0dbb24169a48ee5167671ce74fd1827619994f
parent4ea7470417b7b0c1069a0bc67d93511d3c06a2bf
signature Signed by PGP key 4AEE18F83AFDEB23

parser: require block in suspend expression


3 files changed, 3 insertions(+), 31 deletions(-)

lib/std/zig/parse.zig+1-5
......@@ -885,11 +885,7 @@ const Parser = struct {
885885 },
886886 .keyword_suspend => {
887887 const token = p.nextToken();
888 // TODO remove this special case when 0.9.0 is released.
889 const block_expr: Node.Index = if (p.eatToken(.semicolon) != null)
890 0
891 else
892 try p.expectBlockExprStatement();
888 const block_expr = try p.expectBlockExprStatement();
893889 return p.addNode(.{
894890 .tag = .@"suspend",
895891 .main_token = token,
lib/std/zig/parser_test.zig-15
......@@ -92,21 +92,6 @@ test "zig fmt: rewrite callconv(.Inline) to the inline keyword" {
9292 );
9393}
9494
95// TODO Remove this after zig 0.9.0 is released.
96test "zig fmt: rewrite suspend without block expression" {
97 try testTransform(
98 \\fn foo() void {
99 \\ suspend;
100 \\}
101 \\
102 ,
103 \\fn foo() void {
104 \\ suspend {}
105 \\}
106 \\
107 );
108}
109
11095// TODO Remove this after zig 0.9.0 is released.
11196test "zig fmt: rewrite @byteOffsetOf to @offsetOf" {
11297 try testTransform(
lib/std/zig/render.zig+2-11
......@@ -275,17 +275,8 @@ fn renderExpression(gpa: *Allocator, ais: *Ais, tree: ast.Tree, node: ast.Node.I
275275 .@"suspend" => {
276276 const suspend_token = main_tokens[node];
277277 const body = datas[node].lhs;
278 if (body != 0) {
279 try renderToken(ais, tree, suspend_token, .space);
280 return renderExpression(gpa, ais, tree, body, space);
281 } else {
282 // TODO remove this special case when 0.9.0 is released.
283 assert(space == .semicolon);
284 try renderToken(ais, tree, suspend_token, .space);
285 try ais.writer().writeAll("{}");
286 try ais.insertNewline();
287 return;
288 }
278 try renderToken(ais, tree, suspend_token, .space);
279 return renderExpression(gpa, ais, tree, body, space);
289280 },
290281
291282 .@"catch" => {