small bugfix with for loop conditions
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sun, 19 Jul 2020 20:03:27 +0000 (15:03 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sun, 19 Jul 2020 20:03:27 +0000 (15:03 -0500)
onyx
src/onyxchecker.c

diff --git a/onyx b/onyx
index c238b47f754bf11bc6e08b7fae2c9154cffc2db5..6bf00b5ab2f28ff59e7bd418de71621604a85ec6 100755 (executable)
Binary files a/onyx and b/onyx differ
index dd521cf1f6fe8dfcda181339a0bd00bde3f0e1ff..1542cc99fa2bbe62d1b102a15c4e872b7612e9e4 100644 (file)
@@ -79,9 +79,10 @@ CHECK(while, AstWhile* whilenode) {
 }
 
 CHECK(for, AstFor* fornode) {
-    check_expression(fornode->start);
-    check_expression(fornode->end);
-    if (fornode->step) check_expression(fornode->step);
+    if (check_expression(fornode->start)) return 1;
+    if (check_expression(fornode->end)) return 1;
+    if (fornode->step)
+        if (check_expression(fornode->step)) return 1;
 
     // HACK
     if (fornode->start->type != &basic_types[Basic_Kind_I32]) {
@@ -98,7 +99,7 @@ CHECK(for, AstFor* fornode) {
         return 1;
     }
 
-    check_statement(fornode->stmt);
+    if (check_statement(fornode->stmt)) return 1;
 
     return 0;
 }