aboutsummaryrefslogtreecommitdiff
path: root/src/sema.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sema.c')
-rw-r--r--src/sema.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/sema.c b/src/sema.c
index 12f2689..274bd53 100644
--- a/src/sema.c
+++ b/src/sema.c
@@ -470,6 +470,12 @@ static void check_statement(struct RefCheck* check, struct Statement* statement)
for (size_t i = 0; i < statement->branch.else_count; i += 1)
check_statement(check, &statement->branch.else_body[i]);
break;
+ case STATEMENT_WHILE:
+ check_expr(check, statement->loop.left);
+ check_expr(check, statement->loop.right);
+ for (size_t i = 0; i < statement->loop.body_count; i += 1)
+ check_statement(check, &statement->loop.body[i]);
+ break;
case STATEMENT_CALL:
{
struct CallStatement* call = &statement->call;