@@ -50,27 +50,21 @@ pub fn expand_aggregate<'tcx>(
5050 _ => None ,
5151 } ;
5252
53- operands
54- . enumerate ( )
55- . map ( move |( i, ( op, ty) ) | {
56- let lhs_field = if let AggregateKind :: Array ( _) = kind {
57- let offset = u64:: try_from ( i) . unwrap ( ) ;
58- tcx. mk_place_elem (
59- lhs,
60- ProjectionElem :: ConstantIndex {
61- offset,
62- min_length : offset + 1 ,
63- from_end : false ,
64- } ,
65- )
66- } else {
67- let field = Field :: new ( active_field_index. unwrap_or ( i) ) ;
68- tcx. mk_place_field ( lhs, field, ty)
69- } ;
70- Statement {
71- source_info,
72- kind : StatementKind :: Assign ( Box :: new ( ( lhs_field, Rvalue :: Use ( op) ) ) ) ,
73- }
74- } )
75- . chain ( set_discriminant)
53+ let op_iter = operands. enumerate ( ) . map ( move |( i, ( op, ty) ) | {
54+ let lhs_field = if let AggregateKind :: Array ( _) = kind {
55+ let offset = u64:: try_from ( i) . unwrap ( ) ;
56+ tcx. mk_place_elem (
57+ lhs,
58+ ProjectionElem :: ConstantIndex { offset, min_length : offset + 1 , from_end : false } ,
59+ )
60+ } else {
61+ let field = Field :: new ( active_field_index. unwrap_or ( i) ) ;
62+ tcx. mk_place_field ( lhs, field, ty)
63+ } ;
64+ Statement {
65+ source_info,
66+ kind : StatementKind :: Assign ( Box :: new ( ( lhs_field, Rvalue :: Use ( op) ) ) ) ,
67+ }
68+ } ) ;
69+ set_discriminant. into_iter ( ) . chain ( op_iter)
7670}
0 commit comments