File tree Expand file tree Collapse file tree 1 file changed +9
-9
lines changed Expand file tree Collapse file tree 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> {
798798 fold:: noop_fold_block ( b, self )
799799 } else {
800800 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 ! [ ] ) ;
802804
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 ( ) ) ) ;
807806
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+ }
812812
813813 let mut new_block = ast:: Block {
814814 stmts,
You can’t perform that action at this time.
0 commit comments