diff --git a/parser.c b/parser.c index 1aeca2ade5..19c5f63d00 100644 --- a/parser.c +++ b/parser.c @@ -711,7 +711,7 @@ static AstNodeIndex expectStatement(Parser* p, bool allow_defer_var) { const AstTokenIndex comptime_token = eatToken(p, TOKEN_KEYWORD_COMPTIME); if (comptime_token != null_token) { // comptime followed by block => comptime block statement - const AstNodeIndex block = parseBlock(p); + const AstNodeIndex block = parseBlockExpr(p); if (block != 0) { return addNode(&p->nodes, (AstNodeItem) { @@ -1728,8 +1728,7 @@ static AstNodeIndex parseTypeExpr(Parser* p) { const AstNodeIndex condition = expectExpr(p); expectToken(p, TOKEN_R_PAREN); parsePtrPayload(p); - const AstNodeIndex cont_expr - = eatToken(p, TOKEN_COLON) != null_token ? expectExpr(p) : 0; + const AstNodeIndex cont_expr = parseWhileContinueExpr(p); const AstNodeIndex body = parseTypeExpr(p); if (eatToken(p, TOKEN_KEYWORD_ELSE) != null_token) { parsePayload(p);