[−][src]Struct rustc_infer::infer::combine::Generalizer

pub(in infer::combine) struct Generalizer<'cx, 'tcx> {
    infcx: &'cx InferCtxt<'cx, 'tcx>,
    cause: &'cx ObligationCause<'tcx>,
    for_vid_sub_root: TyVid,
    for_universe: UniverseIndex,
    ambient_variance: Variance,
    needs_wf: bool,
    root_ty: Ty<'tcx>,
    param_env: ParamEnv<'tcx>,
    cache: SsoHashMap<Ty<'tcx>, RelateResult<'tcx, Ty<'tcx>>>,
}

Fields

infcx: &'cx InferCtxt<'cx, 'tcx>cause: &'cx ObligationCause<'tcx>

The span, used when creating new type variables and things.

for_vid_sub_root: TyVid

The vid of the type variable that is in the process of being instantiated; if we find this within the type we are folding, that means we would have created a cyclic type.

for_universe: UniverseIndex

The universe of the type variable that is in the process of being instantiated. Any fresh variables that we create in this process should be in that same universe.

ambient_variance: Variance

Track the variance as we descend into the type.

needs_wf: bool

See the field needs_wf in Generalization.

root_ty: Ty<'tcx>

The root type that we are generalizing. Used when reporting cycles.

param_env: ParamEnv<'tcx>cache: SsoHashMap<Ty<'tcx>, RelateResult<'tcx, Ty<'tcx>>>

Trait Implementations

impl<'tcx, '_> TypeRelation<'tcx> for Generalizer<'_, 'tcx>[src]

Auto Trait Implementations

impl<'cx, 'tcx> !RefUnwindSafe for Generalizer<'cx, 'tcx>

impl<'cx, 'tcx> !Send for Generalizer<'cx, 'tcx>

impl<'cx, 'tcx> !Sync for Generalizer<'cx, 'tcx>

impl<'cx, 'tcx> Unpin for Generalizer<'cx, 'tcx> where
    'tcx: 'cx, 

impl<'cx, 'tcx> !UnwindSafe for Generalizer<'cx, 'tcx>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]