@@ -246,12 +246,14 @@ fn get_arm_identity_info<'a, 'tcx>(
246246 tmp_assigned_vars. insert ( * r) ;
247247 }
248248
249- let mut dbg_info_to_adjust = Vec :: new ( ) ;
250- for ( i, var_info) in debug_info. iter ( ) . enumerate ( ) {
251- if tmp_assigned_vars. contains ( var_info. place . local ) {
252- dbg_info_to_adjust. push ( i) ;
253- }
254- }
249+ let dbg_info_to_adjust: Vec < _ > =
250+ debug_info
251+ . iter ( )
252+ . enumerate ( )
253+ . filter_map ( |( i, var_info) | {
254+ if tmp_assigned_vars. contains ( var_info. place . local ) { Some ( i) } else { None }
255+ } )
256+ . collect ( ) ;
255257
256258 Some ( ArmIdentityInfo {
257259 local_temp_0 : local_tmp_s0,
@@ -461,14 +463,14 @@ fn match_get_variant_field<'tcx>(
461463 stmt : & Statement < ' tcx > ,
462464) -> Option < ( Local , Local , VarField < ' tcx > , & ' tcx List < PlaceElem < ' tcx > > ) > {
463465 match & stmt. kind {
464- StatementKind :: Assign ( box ( place_into , rvalue_from ) ) => match rvalue_from {
465- Rvalue :: Use ( Operand :: Copy ( pf ) | Operand :: Move ( pf ) ) => {
466- let local_into = place_into . as_local ( ) ? ;
467- let ( local_from , vf ) = match_variant_field_place ( * pf ) ? ;
468- Some ( ( local_into, local_from , vf , pf . projection ) )
469- }
470- _ => None ,
471- } ,
466+ StatementKind :: Assign ( box (
467+ place_into ,
468+ Rvalue :: Use ( Operand :: Copy ( pf ) | Operand :: Move ( pf ) ) ,
469+ ) ) => {
470+ let local_into = place_into . as_local ( ) ? ;
471+ let ( local_from , vf ) = match_variant_field_place ( * pf ) ? ;
472+ Some ( ( local_into , local_from , vf , pf . projection ) )
473+ }
472474 _ => None ,
473475 }
474476}
@@ -479,14 +481,11 @@ fn match_get_variant_field<'tcx>(
479481/// ```
480482fn match_set_variant_field < ' tcx > ( stmt : & Statement < ' tcx > ) -> Option < ( Local , Local , VarField < ' tcx > ) > {
481483 match & stmt. kind {
482- StatementKind :: Assign ( box ( place_from, rvalue_into) ) => match rvalue_into {
483- Rvalue :: Use ( Operand :: Move ( place_into) ) => {
484- let local_into = place_into. as_local ( ) ?;
485- let ( local_from, vf) = match_variant_field_place ( * place_from) ?;
486- Some ( ( local_into, local_from, vf) )
487- }
488- _ => None ,
489- } ,
484+ StatementKind :: Assign ( box ( place_from, Rvalue :: Use ( Operand :: Move ( place_into) ) ) ) => {
485+ let local_into = place_into. as_local ( ) ?;
486+ let ( local_from, vf) = match_variant_field_place ( * place_from) ?;
487+ Some ( ( local_into, local_from, vf) )
488+ }
490489 _ => None ,
491490 }
492491}
0 commit comments