diff src/ast_convert.rs @ 71:2c1e2ce41263

Add ast.AsyncFor.
author Bastien Orivel <eijebong@bananium.fr>
date Mon, 13 Jun 2016 18:02:34 +0200
parents a73eaf42bea1
children 7ac23f4336b1
line wrap: on
line diff
--- a/src/ast_convert.rs
+++ b/src/ast_convert.rs
@@ -536,6 +536,7 @@ fn parse_statement(py: Python, ast: PyOb
     let if_type = ast_module.get(py, "If").unwrap();
     let while_type = ast_module.get(py, "While").unwrap();
     let for_type = ast_module.get(py, "For").unwrap();
+    let async_for_type = ast_module.get(py, "AsyncFor").unwrap();
     let expr_type = ast_module.get(py, "Expr").unwrap();
     let break_type = ast_module.get(py, "Break").unwrap();
     let delete_type = ast_module.get(py, "Delete").unwrap();
@@ -618,7 +619,7 @@ fn parse_statement(py: Python, ast: PyOb
         let orelse = parse_list(py, orelse, parse_statement);
 
         stmt::While(test, body, orelse)
-    } else if is_instance(&ast, &for_type) {
+    } else if is_instance(&ast, &for_type) || is_instance(&ast, &async_for_type) {
         let target = ast.getattr(py, "target").unwrap();
         let iter = ast.getattr(py, "iter").unwrap();
         let body = ast.getattr(py, "body").unwrap();
@@ -629,7 +630,7 @@ fn parse_statement(py: Python, ast: PyOb
         let body = parse_list(py, body, parse_statement);
         let orelse = parse_list(py, orelse, parse_statement);
 
-        stmt::For(target, iter, body, orelse)
+        stmt::For(target, iter, body, orelse, is_instance(&ast, &async_for_type))
     } else if is_instance(&ast, &assign_type) {
         let targets = ast.getattr(py, "targets").unwrap();
         let value = ast.getattr(py, "value").unwrap();