From 272ae0ca0dff89689ad9715a4d8fa98ed86440b9 Mon Sep 17 00:00:00 2001 From: Vincent Rischmann Date: Sat, 6 Mar 2021 19:37:33 +0100 Subject: [PATCH] fix parsing of assignment with 'inline for' and 'inline while' --- lib/std/zig/parse.zig | 2 +- lib/std/zig/parser_test.zig | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/std/zig/parse.zig b/lib/std/zig/parse.zig index 90e5c4fbff..ad32d3182d 100644 --- a/lib/std/zig/parse.zig +++ b/lib/std/zig/parse.zig @@ -1981,7 +1981,7 @@ const Parser = struct { } }, .keyword_inline => { - p.tok_i += 2; + p.tok_i += 1; switch (p.token_tags[p.tok_i]) { .keyword_for => return p.parseForExpr(), .keyword_while => return p.parseWhileExpr(), diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index f4b95f2362..5c0f4b3bda 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -4297,6 +4297,18 @@ test "zig fmt: respect extra newline between switch items" { ); } +test "zig fmt: assignment with inline for and inline while" { + try testCanonical( + \\const tmp = inline for (items) |item| {}; + \\ + ); + + try testCanonical( + \\const tmp2 = inline while (true) {}; + \\ + ); +} + test "zig fmt: insert trailing comma if there are comments between switch values" { try testTransform( \\const a = switch (b) {