Fix for loops causing issues together
This commit is contained in:
		
							parent
							
								
									5464bba17e
								
							
						
					
					
						commit
						87a8eac61b
					
				| @ -1,9 +1,11 @@ | ||||
| import std::print; | ||||
| import std::from_str; | ||||
| 
 | ||||
| fn main() { | ||||
|     for i in 0..1 { | ||||
|         print("Hello!"); | ||||
|         print(from_str("Hello!")); | ||||
|     } | ||||
|     for i in 0..1 { | ||||
|         print("World!"); | ||||
|         print(from_str("Hello!")); | ||||
|     } | ||||
| } | ||||
| @ -158,7 +158,6 @@ impl ast::Block { | ||||
|                         StmtKind::Let(counter_var.clone(), true, start.process(module_id)), | ||||
|                         counter_range.as_meta(module_id), | ||||
|                     ); | ||||
|                     mir_statements.push(let_statement); | ||||
| 
 | ||||
|                     let set_new = mir::Statement( | ||||
|                         StmtKind::Set( | ||||
| @ -187,7 +186,7 @@ impl ast::Block { | ||||
|                     ); | ||||
|                     let mut block = block.into_mir(module_id); | ||||
|                     block.statements.push(set_new); | ||||
|                     ( | ||||
|                     let while_statement = mir::Statement( | ||||
|                         StmtKind::While(WhileStatement { | ||||
|                             condition: mir::Expression( | ||||
|                                 mir::ExprKind::BinOp( | ||||
| @ -203,8 +202,18 @@ impl ast::Block { | ||||
|                             block, | ||||
|                             meta: self.2.as_meta(module_id), | ||||
|                         }), | ||||
|                         self.2, | ||||
|                     ) | ||||
|                         self.2.as_meta(module_id), | ||||
|                     ); | ||||
| 
 | ||||
|                     let inner_scope = StmtKind::Expression(mir::Expression( | ||||
|                         mir::ExprKind::Block(mir::Block { | ||||
|                             statements: vec![let_statement, while_statement], | ||||
|                             return_expression: None, | ||||
|                             meta: counter_range.as_meta(module_id) + end.1.as_meta(module_id), | ||||
|                         }), | ||||
|                         counter_range.as_meta(module_id) + end.1.as_meta(module_id), | ||||
|                     )); | ||||
|                     (inner_scope, self.2) | ||||
|                 } | ||||
|                 ast::BlockLevelStatement::WhileLoop(expression, block) => ( | ||||
|                     StmtKind::While(WhileStatement { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user