@@ -1693,11 +1693,8 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
1693
1693
} ,
1694
1694
// `OpaqueCast`: only transmutes the type, so no moves there.
1695
1695
// `Downcast` : only changes information about a `Place` without moving.
1696
- // `Subtype` : only transmutes the type, so no moves.
1697
1696
// So it's safe to skip these.
1698
- ProjectionElem :: OpaqueCast ( _)
1699
- | ProjectionElem :: Subtype ( _)
1700
- | ProjectionElem :: Downcast ( _, _) => ( ) ,
1697
+ ProjectionElem :: OpaqueCast ( _) | ProjectionElem :: Downcast ( _, _) => ( ) ,
1701
1698
}
1702
1699
1703
1700
place_ty = place_ty. projection_ty ( tcx, elem) ;
@@ -1921,7 +1918,6 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
1921
1918
for ( place_base, elem) in place. iter_projections ( ) . rev ( ) {
1922
1919
match elem {
1923
1920
ProjectionElem :: Index ( _/*operand*/ ) |
1924
- ProjectionElem :: Subtype ( _) |
1925
1921
ProjectionElem :: OpaqueCast ( _) |
1926
1922
ProjectionElem :: ConstantIndex { .. } |
1927
1923
// assigning to P[i] requires P to be valid.
@@ -2312,7 +2308,6 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
2312
2308
| ProjectionElem :: Index ( ..)
2313
2309
| ProjectionElem :: ConstantIndex { .. }
2314
2310
| ProjectionElem :: Subslice { .. }
2315
- | ProjectionElem :: Subtype ( ..)
2316
2311
| ProjectionElem :: OpaqueCast { .. }
2317
2312
| ProjectionElem :: Downcast ( ..) => {
2318
2313
let upvar_field_projection = self . is_upvar_field_projection ( place) ;
0 commit comments