@@ -443,21 +443,17 @@ def make_for_loop_generator(
443443 target_type = builder .get_sequence_type (expr )
444444 for_list = ForSequence (builder , index , body_block , loop_exit , line , nested )
445445
446- if (
447- isinstance (expr , IndexExpr )
448- and isinstance (expr .index , SliceExpr )
449- and all (
450- s is None or isinstance (constant_fold_expr (builder , s ), int )
451- for s in (expr .index .start , expr .index .stop , expr .index .step )
452- )
446+ if isinstance (expr , IndexExpr ) and isinstance (expr .index , SliceExpr ) and all (
447+ s is None or isinstance (constant_fold_expr (builder , s ), int )
448+ for s in (expr .index .start , expr .index .stop , expr .index .step )
453449 ):
454450 for_list .init (
455451 builder .accept (expr .base ),
456452 target_type ,
457453 reverse = False ,
458- start = expr .index .start ,
459- stop = expr .index .stop ,
460- step = expr .index .step ,
454+ start = constant_fold_expr ( builder , expr .index .start ) ,
455+ stop = constant_fold_expr ( builder , expr .index .stop ) ,
456+ step = constant_fold_expr ( builder , expr .index .step ) ,
461457 )
462458 else :
463459 for_list .init (builder .accept (expr ), target_type , reverse = False )
0 commit comments