let proj_base = &place.projection[..i];
let body = self.builder.body;
let tcx = self.builder.tcx;
- let place_ty = Place::ty_from(&place.local, proj_base, body, tcx).ty;
+ let place_ty = Place::ty_from(place.local, proj_base, body, tcx).ty;
match place_ty.kind {
ty::Ref(..) | ty::RawPtr(..) => {
let proj = &place.projection[..i + 1];
self.gather_operand(discr);
}
- TerminatorKind::Yield { ref value, .. } => {
+ TerminatorKind::Yield { ref value, resume_arg: ref place, .. } => {
self.gather_operand(value);
+ self.create_move_path(place);
+ self.gather_init(place.as_ref(), InitKind::Deep);
}
TerminatorKind::Drop { ref location, target: _, unwind: _ } => {