File tree 1 file changed +3
-3
lines changed
compiler/rustc_mir_transform/src/coroutine
1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change @@ -89,11 +89,11 @@ impl<'tcx> MutVisitor<'tcx> for MakeByMoveBody<'tcx> {
89
89
location : mir:: Location ,
90
90
) {
91
91
if place. local == ty:: CAPTURE_STRUCT_LOCAL
92
- && !place . projection . is_empty ( )
93
- && let mir :: ProjectionElem :: Field ( idx , ty ) = place. projection [ 0 ]
92
+ && let Some ( ( & mir :: ProjectionElem :: Field ( idx , ty ) , projection ) ) =
93
+ place. projection . split_first ( )
94
94
&& self . by_ref_fields . contains ( & idx)
95
95
{
96
- let ( begin, end) = place . projection [ 1 .. ] . split_first ( ) . unwrap ( ) ;
96
+ let ( begin, end) = projection. split_first ( ) . unwrap ( ) ;
97
97
// FIXME(async_closures): I'm actually a bit surprised to see that we always
98
98
// initially deref the by-ref upvars. If this is not actually true, then we
99
99
// will at least get an ICE that explains why this isn't true :^)
You can’t perform that action at this time.
0 commit comments