[−][src]Struct rustc_infer::infer::resolve::OpportunisticRegionResolver
The opportunistic region resolver opportunistically resolves regions variables to the variable with the least variable id. It is used when normlizing projections to avoid hitting the recursion limit by creating many versions of a predicate for types that in the end have to unify.
If you want to resolve type and const variables as well, call InferCtxt::resolve_vars_if_possible first.
Fields
infcx: &'a InferCtxt<'a, 'tcx>Implementations
impl<'a, 'tcx> OpportunisticRegionResolver<'a, 'tcx>[src]
Trait Implementations
impl<'a, 'tcx> TypeFolder<'tcx> for OpportunisticRegionResolver<'a, 'tcx>[src]
pub fn tcx<'b>(&'b self) -> TyCtxt<'tcx>[src]
pub fn fold_ty(&mut self, t: Ty<'tcx>) -> Ty<'tcx>[src]
pub fn fold_region(&mut self, r: Region<'tcx>) -> Region<'tcx>[src]
pub fn fold_const(&mut self, ct: &'tcx Const<'tcx>) -> &'tcx Const<'tcx>[src]
pub fn fold_binder<T>(&mut self, t: Binder<T>) -> Binder<T> where
T: TypeFoldable<'tcx>, [src]
T: TypeFoldable<'tcx>,
Auto Trait Implementations
impl<'a, 'tcx> !RefUnwindSafe for OpportunisticRegionResolver<'a, 'tcx>
impl<'a, 'tcx> !Send for OpportunisticRegionResolver<'a, 'tcx>
impl<'a, 'tcx> !Sync for OpportunisticRegionResolver<'a, 'tcx>
impl<'a, 'tcx> Unpin for OpportunisticRegionResolver<'a, 'tcx> where
'tcx: 'a,
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for OpportunisticRegionResolver<'a, '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.