}
}
- fn lvalue_contents_are_tracked(&self, lv: &Lvalue<'tcx>) -> bool {
- let ty = self.mir.lvalue_ty(self.tcx, lv).to_ty(self.tcx);
- match ty.sty {
- ty::TyArray(..) | ty::TySlice(..) | ty::TyRef(..) | ty::TyRawPtr(..) => {
- false
- }
- _ => self.lvalue_is_tracked(lv)
- }
- }
-
fn collect_drop_flags(&mut self)
{
- for bb in self.mir.all_basic_blocks() {
- let data = self.mir.basic_block_data(bb);
+ for (bb, data) in self.mir.basic_blocks().iter_enumerated() {
let terminator = data.terminator();
let location = match terminator.kind {
TerminatorKind::Drop { ref location, .. } |