authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2019-06-24 10:29:58+03:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-06-26 11:04:34-04:00
logfa42c99d82448c74a657d16e0f2e5f9877e364c0
tree96e0f6499f39e1aeec8ebdcb4279e075f5996791
parente79e8993e695f6c384f742d09060823f421758ca

fixed IfTypeExpr parsing


2 files changed, 14 insertions(+), 2 deletions(-)

std/zig/parse.zig+2-2
......@@ -2833,8 +2833,8 @@ fn parseIf(arena: *Allocator, it: *TokenIterator, tree: *Tree, bodyParseFn: Node
28332833
28342834 const else_token = eatToken(it, .Keyword_else) orelse return node;
28352835 const payload = try parsePayload(arena, it, tree);
2836 const else_expr = try expectNode(arena, it, tree, parseExpr, AstError{
2837 .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index },
2836 const else_expr = try expectNode(arena, it, tree, bodyParseFn, AstError{
2837 .InvalidToken = AstError.InvalidToken{ .token = it.index },
28382838 });
28392839 const else_node = try arena.create(Node.Else);
28402840 else_node.* = Node.Else{
std/zig/parser_test.zig+12
......@@ -2234,6 +2234,18 @@ test "zig fmt: multiline string in array" {
22342234 );
22352235}
22362236
2237test "zig fmt: if type expr" {
2238 try testCanonical(
2239 \\const mycond = true;
2240 \\pub fn foo() if (mycond) i32 else void {
2241 \\ if (mycond) {
2242 \\ return 42;
2243 \\ }
2244 \\}
2245 \\
2246 );
2247}
2248
22372249const std = @import("std");
22382250const mem = std.mem;
22392251const warn = std.debug.warn;