Commit 272ae0ca0d

Vincent Rischmann <vincent@rischmann.fr>
2021-03-06 19:37:33
fix parsing of assignment with 'inline for' and 'inline while'
1 parent 34cb593
Changed files (2)
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(),
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) {