aboutsummaryrefslogtreecommitdiff
path: root/src/eval.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.cpp')
-rw-r--r--src/eval.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/eval.cpp b/src/eval.cpp
index 60051234e2..1fa8f4995e 100644
--- a/src/eval.cpp
+++ b/src/eval.cpp
@@ -1014,6 +1014,7 @@ static bool eval_while_expr(EvalFn *ef, AstNode *node, ConstExprValue *out_val)
AstNode *cond_node = node->data.while_expr.condition;
AstNode *body_node = node->data.while_expr.body;
+ AstNode *continue_expr_node = node->data.while_expr.continue_expr;
EvalScope *my_scope = allocate<EvalScope>(1);
my_scope->block_context = body_node->block_context;
@@ -1030,6 +1031,11 @@ static bool eval_while_expr(EvalFn *ef, AstNode *node, ConstExprValue *out_val)
ConstExprValue body_val = {0};
if (eval_expr(ef, body_node, &body_val)) return true;
+ if (continue_expr_node) {
+ ConstExprValue continue_expr_val = {0};
+ if (eval_expr(ef, continue_expr_node, &continue_expr_val)) return true;
+ }
+
ef->root->branches_used += 1;
}