diff src/ast_type.rs @ 6:6f2bf13f4cb5

Add ast.While and ast.Break.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Tue, 31 May 2016 04:22:35 +0100
parents ddf372373a77
children 680d15073f55
line wrap: on
line diff
--- a/src/ast_type.rs
+++ b/src/ast_type.rs
@@ -84,6 +84,16 @@ impl Visitor<Type> for Typing {
                 }
                 Type::Bottom
             },
+            Statement::While(test, body, orelse) => {
+                self.visit_expr(test);
+                for statement in body {
+                    self.visit_statement(statement);
+                }
+                for statement in orelse {
+                    self.visit_statement(statement);
+                }
+                Type::Bottom
+            },
             Statement::For(target, iter, body, orelse) => {
                 self.visit_expr(target);
                 self.visit_expr(iter);
@@ -126,6 +136,9 @@ impl Visitor<Type> for Typing {
             Statement::Expr(expr) => {
                 self.visit_expr(expr)
             },
+            Statement::Break => {
+                Type::Bottom
+            },
             Statement::Error => {
                 println!("Statement::Error");
                 panic!()