From a25307c0a1b45d0c7b83158349fbc57626baf656 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 19 Apr 2016 20:28:44 -0700 Subject: add optional continue expression to while loop closes #139 --- src/analyze.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/analyze.cpp') diff --git a/src/analyze.cpp b/src/analyze.cpp index 3a8f0eb6fa..083f4bd2cd 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -3507,10 +3507,15 @@ static TypeTableEntry *analyze_while_expr(CodeGen *g, ImportTableEntry *import, AstNode *condition_node = node->data.while_expr.condition; AstNode *while_body_node = node->data.while_expr.body; + AstNode **continue_expr_node = &node->data.while_expr.continue_expr; TypeTableEntry *condition_type = analyze_expression(g, import, context, g->builtin_types.entry_bool, condition_node); + if (*continue_expr_node) { + analyze_expression(g, import, context, g->builtin_types.entry_void, *continue_expr_node); + } + BlockContext *child_context = new_block_context(node, context); child_context->parent_loop_node = node; -- cgit v1.2.3