bugfix with do block symbol resolution
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 10 Sep 2022 23:42:13 +0000 (18:42 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 10 Sep 2022 23:42:13 +0000 (18:42 -0500)
compiler/src/symres.c

index 6877718d93bdf902c3b5905f5e2b275a1e0d8c43..b5044fac465d0b7a2afbc3bbf11b1b23b45f475c 100644 (file)
@@ -608,9 +608,12 @@ static SymresStatus symres_expression(AstTyped** expr) {
             SYMRES(directive_insert, (AstDirectiveInsert *) *expr);
             break;
 
-        case Ast_Kind_Do_Block:
+        case Ast_Kind_Do_Block: {
+            Scope* old_curr_scope = curr_scope;
             SYMRES(block, ((AstDoBlock *) *expr)->block);
+            curr_scope = old_curr_scope;
             break;
+        }
 
         case Ast_Kind_Param:
             if ((*expr)->flags & Ast_Flag_Param_Symbol_Dirty) {