where
L: HasLocalDecls<'tcx>,
{
- for (i, elem) in place.projection.iter().enumerate().rev() {
- let proj_base = &place.projection[..i];
+ let mut cursor = &*place.projection;
+ while let [proj_base @ .., elem] = cursor {
+ cursor = proj_base;
match elem {
// encountered a Deref, which is ABI-aligned
ProjectionElem::Deref => break,
ProjectionElem::Field(..) => {
let ty = Place::ty_from(&place.base, proj_base, local_decls, tcx).ty;
- match ty.sty {
+ match ty.kind {
ty::Adt(def, _) if def.repr.packed() => {
return true
}