[−][src]Struct rustc_infer::infer::nll_relate::ScopeInstantiator
When we encounter a binder like for<..> fn(..), we actually have
to walk the fn value to find all the values bound by the for
(these are not explicitly present in the ty representation right
now). This visitor handles that: it descends the type, tracking
binder depth, and finds late-bound regions targeting the
for<..>. For each of those, it creates an entry in
bound_region_scope.
Fields
next_region: &'me mut dyn FnMut(BoundRegion) -> Region<'tcx>target_index: DebruijnIndexbound_region_scope: &'me mut BoundRegionScope<'tcx>Trait Implementations
impl<'me, 'tcx> TypeVisitor<'tcx> for ScopeInstantiator<'me, 'tcx>[src]
pub fn visit_binder<T: TypeFoldable<'tcx>>(
&mut self,
t: &Binder<T>
) -> ControlFlow<Self::BreakTy>[src]
&mut self,
t: &Binder<T>
) -> ControlFlow<Self::BreakTy>
pub fn visit_region(&mut self, r: Region<'tcx>) -> ControlFlow<Self::BreakTy>[src]
type BreakTy = !
pub fn visit_ty(&mut self, t: &'tcx TyS<'tcx>) -> ControlFlow<Self::BreakTy, ()>[src]
pub fn visit_const(
&mut self,
c: &'tcx Const<'tcx>
) -> ControlFlow<Self::BreakTy, ()>[src]
&mut self,
c: &'tcx Const<'tcx>
) -> ControlFlow<Self::BreakTy, ()>
pub fn visit_predicate(
&mut self,
p: Predicate<'tcx>
) -> ControlFlow<Self::BreakTy, ()>[src]
&mut self,
p: Predicate<'tcx>
) -> ControlFlow<Self::BreakTy, ()>
Auto Trait Implementations
impl<'me, 'tcx> !RefUnwindSafe for ScopeInstantiator<'me, 'tcx>
impl<'me, 'tcx> !Send for ScopeInstantiator<'me, 'tcx>
impl<'me, 'tcx> !Sync for ScopeInstantiator<'me, 'tcx>
impl<'me, 'tcx> Unpin for ScopeInstantiator<'me, 'tcx> where
'tcx: 'me,
'tcx: 'me,
impl<'me, 'tcx> !UnwindSafe for ScopeInstantiator<'me, 'tcx>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.