diff --git a/src/librustc/mir/visit.rs b/src/librustc/mir/visit.rs index 7d8227053b37..d2b0a6a37a74 100644 --- a/src/librustc/mir/visit.rs +++ b/src/librustc/mir/visit.rs @@ -214,7 +214,7 @@ macro_rules! make_mir_visitor { self.super_ty(ty); } - fn visit_canonical_ty(&mut self, ty: & $($mutability)* CanonicalTy<'tcx>) { + fn visit_user_ty(&mut self, ty: & $($mutability)* CanonicalTy<'tcx>) { self.super_canonical_ty(ty); } @@ -640,7 +640,7 @@ macro_rules! make_mir_visitor { c_ty: & $($mutability)* CanonicalTy<'tcx>, location: Location) { self.visit_place(place, PlaceContext::Validate, location); - self.visit_canonical_ty(c_ty); + self.visit_user_ty(c_ty); } fn super_place(&mut self, @@ -736,7 +736,7 @@ macro_rules! make_mir_visitor { source_info: *source_info, }); if let Some(user_ty) = user_ty { - self.visit_canonical_ty(user_ty); + self.visit_user_ty(user_ty); } self.visit_source_info(source_info); self.visit_source_scope(visibility_scope); diff --git a/src/librustc_mir/borrow_check/nll/renumber.rs b/src/librustc_mir/borrow_check/nll/renumber.rs index d77863d598f6..15a60badc93e 100644 --- a/src/librustc_mir/borrow_check/nll/renumber.rs +++ b/src/librustc_mir/borrow_check/nll/renumber.rs @@ -10,7 +10,7 @@ use rustc::ty::subst::Substs; use rustc::ty::{self, CanonicalTy, ClosureSubsts, GeneratorSubsts, Ty, TypeFoldable}; -use rustc::mir::{BasicBlock, Location, Mir, Place, Statement, StatementKind}; +use rustc::mir::{BasicBlock, Location, Mir, Statement, StatementKind}; use rustc::mir::visit::{MutVisitor, TyContext}; use rustc::infer::{InferCtxt, NLLRegionVariableOrigin}; @@ -65,6 +65,14 @@ impl<'a, 'gcx, 'tcx> MutVisitor<'tcx> for NLLVisitor<'a, 'gcx, 'tcx> { debug!("visit_ty: ty={:?}", ty); } + fn visit_user_ty(&mut self, _ty: &mut CanonicalTy<'tcx>) { + // `user_ty` annotations represent the types that the user + // wrote in the progarm. We don't want to erase the regions + // from these types: rather, we want to add them as + // constraints at type-check time. + debug!("visit_user_ty: skipping renumber"); + } + fn visit_substs(&mut self, substs: &mut &'tcx Substs<'tcx>, location: Location) { debug!("visit_substs(substs={:?}, location={:?})", substs, location); @@ -112,19 +120,6 @@ impl<'a, 'gcx, 'tcx> MutVisitor<'tcx> for NLLVisitor<'a, 'gcx, 'tcx> { debug!("visit_closure_substs: substs={:?}", substs); } - fn visit_ascribe_user_ty( - &mut self, - _place: &mut Place<'tcx>, - _variance: &mut ty::Variance, - _c_ty: &mut CanonicalTy<'tcx>, - _location: Location, - ) { - // User-assert-ty statements represent types that the user added explicitly. - // We don't want to erase the regions from these types: rather, we want to - // add them as constraints at type-check time. - debug!("visit_user_assert_ty: skipping renumber"); - } - fn visit_statement( &mut self, block: BasicBlock,