@@ -88,7 +88,7 @@ def constant_fold_expr(builder: IRBuilder, expr: Expression) -> ConstantValue |
8888 # TODO extend this to work with rtuples comprised of known literal values
8989 and isinstance (arg := args [0 ], (ListExpr , TupleExpr ))
9090 ):
91- folded_items = constant_fold_container_items (builder , arg )
91+ folded_items = constant_fold_container_expr (builder , arg )
9292 if all (isinstance (item , str ) for item in folded_items ):
9393 return folded_callee .join (folded_items )
9494
@@ -101,7 +101,7 @@ def constant_fold_expr(builder: IRBuilder, expr: Expression) -> ConstantValue |
101101 # TODO extend this to work with rtuples comprised of known literal values
102102 and isinstance (arg := args [0 ], (ListExpr , TupleExpr ))
103103 ):
104- folded_items = constant_fold_container_items (builder , arg )
104+ folded_items = constant_fold_container_expr (builder , arg )
105105 if all (isinstance (item , bytes ) for item in folded_items ):
106106 return folded_callee .join (folded_items )
107107 return None
@@ -139,11 +139,11 @@ def constant_fold_container_expr(
139139 builder : IRBuilder , expr : ListExpr | TupleExpr
140140) -> list [ConstantValue ] | tuple [ConstantValue , ...] | None :
141141 folded_items = [constant_fold_expr (builder , item_expr ) for item_expr in expr .items ]
142- if not all (isinstance (item , ConstantValue ) for item in folded_items ):
143- return None
144- elif isinstance ( expr , ListExpr ):
145- return folded_items
146- elif isinstance ( expr , TupleExpr ):
147- return tuple ( folded_items )
148- else :
149- raise NotImplementedError ( type ( expr ), expr )
142+ if all (isinstance (item , ( ConstantValue ) ) for item in folded_items ):
143+ if isinstance ( expr , ListExpr ):
144+ return folded_items
145+ elif isinstance ( expr , TupleExpr ):
146+ return tuple ( folded_items )
147+ else :
148+ raise NotImplementedError ( type ( expr ), expr )
149+ return None
0 commit comments