Skip to content

Commit 8c3406f

Browse files
committed
Add docs, remove code, change subtyper code
1 parent 4e9e0aa commit 8c3406f

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/base.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -872,13 +872,11 @@ pub(crate) fn codegen_place<'tcx>(
872872

873873
for elem in place.projection {
874874
match elem {
875-
PlaceElem::Subtype(_) => {
876-
continue;
877-
}
878875
PlaceElem::Deref => {
879876
cplace = cplace.place_deref(fx);
880877
}
881878
PlaceElem::OpaqueCast(ty) => bug!("encountered OpaqueCast({ty}) in codegen"),
879+
PlaceElem::Subtype(ty) => cplace = cplace.place_transmute_type(fx, ty),
882880
PlaceElem::Field(field, _ty) => {
883881
cplace = cplace.place_field(fx, field);
884882
}

src/value_and_place.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,14 @@ impl<'tcx> CPlace<'tcx> {
674674
}
675675
}
676676

677+
pub(crate) fn place_transmute_type(
678+
self,
679+
fx: &mut FunctionCx<'_, '_, 'tcx>,
680+
ty: Ty<'tcx>,
681+
) -> CPlace<'tcx> {
682+
CPlace { inner: self.inner, layout: fx.layout_of(fx.monomorphize(ty)) }
683+
}
684+
677685
pub(crate) fn place_field(
678686
self,
679687
fx: &mut FunctionCx<'_, '_, 'tcx>,

0 commit comments

Comments
 (0)