@@ -1693,11 +1693,8 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
16931693 } ,
16941694 // `OpaqueCast`: only transmutes the type, so no moves there.
16951695 // `Downcast` : only changes information about a `Place` without moving.
1696- // `Subtype` : only transmutes the type, so no moves.
16971696 // So it's safe to skip these.
1698- ProjectionElem :: OpaqueCast ( _)
1699- | ProjectionElem :: Subtype ( _)
1700- | ProjectionElem :: Downcast ( _, _) => ( ) ,
1697+ ProjectionElem :: OpaqueCast ( _) | ProjectionElem :: Downcast ( _, _) => ( ) ,
17011698 }
17021699
17031700 place_ty = place_ty. projection_ty ( tcx, elem) ;
@@ -1921,7 +1918,6 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
19211918 for ( place_base, elem) in place. iter_projections ( ) . rev ( ) {
19221919 match elem {
19231920 ProjectionElem :: Index ( _/*operand*/ ) |
1924- ProjectionElem :: Subtype ( _) |
19251921 ProjectionElem :: OpaqueCast ( _) |
19261922 ProjectionElem :: ConstantIndex { .. } |
19271923 // assigning to P[i] requires P to be valid.
@@ -2312,7 +2308,6 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
23122308 | ProjectionElem :: Index ( ..)
23132309 | ProjectionElem :: ConstantIndex { .. }
23142310 | ProjectionElem :: Subslice { .. }
2315- | ProjectionElem :: Subtype ( ..)
23162311 | ProjectionElem :: OpaqueCast { .. }
23172312 | ProjectionElem :: Downcast ( ..) => {
23182313 let upvar_field_projection = self . is_upvar_field_projection ( place) ;
0 commit comments