diff --git a/lib/std/zig/parse.zig b/lib/std/zig/parse.zig index 001799e0b..6dfd1120b 100644 --- a/lib/std/zig/parse.zig +++ b/lib/std/zig/parse.zig @@ -732,7 +732,7 @@ fn parseIfStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node const block_expr = (try parseBlockExpr(arena, it, tree)); const assign_expr = if (block_expr == null) - try expectNode(arena, it, tree, parseAdditionExpr, .{ + try expectNode(arena, it, tree, parseAssignExpr, .{ .ExpectedBlockOrAssignment = .{ .token = it.index }, }) else diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig index ef8779e7f..186a59e74 100644 --- a/lib/std/zig/parser_test.zig +++ b/lib/std/zig/parser_test.zig @@ -208,6 +208,16 @@ test "recovery: invalid comptime" { }); } +test "zig fmt: if statment" { + try testCanonical( + \\test "" { + \\ if (optional()) |some| + \\ bar = some.foo(); + \\} + \\ + ); +} + test "zig fmt: top-level fields" { try testCanonical( \\a: did_you_know,