@@ -2716,6 +2716,21 @@ def gen_inner_stmts() -> None:
27162716 self .comprehension_helper (loop_params , gen_inner_stmts , o .line )
27172717 return d
27182718
2719+ def visit_generator_expr (self , o : GeneratorExpr ) -> Value :
2720+ print ('{}:{}: Warning: treating generator comprehension as list' .format (
2721+ self .module_path , o .line ))
2722+
2723+ gen = o
2724+ list_ops = self .primitive_op (new_list_op , [], o .line )
2725+ loop_params = list (zip (gen .indices , gen .sequences , gen .condlists ))
2726+
2727+ def gen_inner_stmts () -> None :
2728+ e = self .accept (gen .left_expr )
2729+ self .primitive_op (list_append_op , [list_ops , e ], o .line )
2730+
2731+ self .comprehension_helper (loop_params , gen_inner_stmts , o .line )
2732+ return list_ops
2733+
27192734 def comprehension_helper (self ,
27202735 loop_params : List [Tuple [Lvalue , Expression , List [Expression ]]],
27212736 gen_inner_stmts : Callable [[], None ],
@@ -2859,9 +2874,6 @@ def visit_enum_call_expr(self, o: EnumCallExpr) -> Value:
28592874 def visit_exec_stmt (self , o : ExecStmt ) -> None :
28602875 raise NotImplementedError
28612876
2862- def visit_generator_expr (self , o : GeneratorExpr ) -> Value :
2863- raise NotImplementedError
2864-
28652877 def visit_namedtuple_expr (self , o : NamedTupleExpr ) -> Value :
28662878 raise NotImplementedError
28672879
0 commit comments