File tree 1 file changed +9
-9
lines changed
1 file changed +9
-9
lines changed Original file line number Diff line number Diff line change @@ -798,17 +798,17 @@ impl<'a> fold::Folder for ReplaceBodyWithLoop<'a> {
798
798
fold:: noop_fold_block ( b, self )
799
799
} else {
800
800
b. map ( |b| {
801
- let old_blocks = self . nested_blocks . replace ( vec ! [ ] ) ;
801
+ let mut stmts = vec ! [ ] ;
802
+ for s in b. stmts {
803
+ let old_blocks = self . nested_blocks . replace ( vec ! [ ] ) ;
802
804
803
- let mut stmts = b. stmts . into_iter ( )
804
- . flat_map ( |s| self . fold_stmt ( s) )
805
- . filter ( |s| s. is_item ( ) )
806
- . collect :: < Vec < ast:: Stmt > > ( ) ;
805
+ stmts. extend ( self . fold_stmt ( s) . into_iter ( ) . filter ( |s| s. is_item ( ) ) ) ;
807
806
808
- // we put a Some in there earlier with that replace(), so this is valid
809
- let new_blocks = self . nested_blocks . take ( ) . unwrap ( ) ;
810
- self . nested_blocks = old_blocks;
811
- stmts. extend ( new_blocks. into_iter ( ) . map ( |b| block_to_stmt ( b, & self . sess ) ) ) ;
807
+ // we put a Some in there earlier with that replace(), so this is valid
808
+ let new_blocks = self . nested_blocks . take ( ) . unwrap ( ) ;
809
+ self . nested_blocks = old_blocks;
810
+ stmts. extend ( new_blocks. into_iter ( ) . map ( |b| block_to_stmt ( b, & self . sess ) ) ) ;
811
+ }
812
812
813
813
let mut new_block = ast:: Block {
814
814
stmts,
You can’t perform that action at this time.
0 commit comments