use rustc::infer::InferCtxt;
use rustc::mir::visit::TyContext;
use rustc::mir::visit::Visitor;
-use rustc::mir::{BasicBlock, BasicBlockData, Location, Mir, Place, PlaceBase, Rvalue};
+use rustc::mir::{BasicBlock, BasicBlockData, Location, Body, Place, PlaceBase, Rvalue};
use rustc::mir::{SourceInfo, Statement, Terminator};
use rustc::mir::UserTypeProjection;
use rustc::ty::fold::TypeFoldable;
-use rustc::ty::{self, ClosureSubsts, GeneratorSubsts, RegionVid};
+use rustc::ty::{self, ClosureSubsts, GeneratorSubsts, RegionVid, Ty};
use rustc::ty::subst::SubstsRef;
pub(super) fn generate_constraints<'cx, 'gcx, 'tcx>(
liveness_constraints: &mut LivenessValues<RegionVid>,
all_facts: &mut Option<AllFacts>,
location_table: &LocationTable,
- mir: &Mir<'tcx>,
+ mir: &Body<'tcx>,
borrow_set: &BorrowSet<'tcx>,
) {
let mut cg = ConstraintGeneration {
/// We sometimes have `ty` within an rvalue, or within a
/// call. Make them live at the location where they appear.
- fn visit_ty(&mut self, ty: ty::Ty<'tcx>, ty_context: TyContext) {
+ fn visit_ty(&mut self, ty: Ty<'tcx>, ty_context: TyContext) {
match ty_context {
TyContext::ReturnTy(SourceInfo { span, .. })
| TyContext::YieldTy(SourceInfo { span, .. })
fn visit_statement(
&mut self,
- block: BasicBlock,
statement: &Statement<'tcx>,
location: Location,
) {
));
}
- self.super_statement(block, statement, location);
+ self.super_statement(statement, location);
}
fn visit_assign(
&mut self,
- block: BasicBlock,
place: &Place<'tcx>,
rvalue: &Rvalue<'tcx>,
location: Location,
}
}
- self.super_assign(block, place, rvalue, location);
+ self.super_assign(place, rvalue, location);
}
fn visit_terminator(
&mut self,
- block: BasicBlock,
terminator: &Terminator<'tcx>,
location: Location,
) {
}
}
- self.super_terminator(block, terminator, location);
+ self.super_terminator(terminator, location);
}
fn visit_ascribe_user_ty(