pub trait InferCtxtLike {
    type Interner: Interner;

    // Required methods
    fn interner(&self) -> Self::Interner;
    fn universe_of_ty(&self, ty: TyVid) -> Option<UniverseIndex>;
    fn root_ty_var(&self, vid: TyVid) -> TyVid;
    fn probe_ty_var(
        &self,
        vid: TyVid
    ) -> Option<<Self::Interner as Interner>::Ty>;
    fn universe_of_lt(
        &self,
        lt: <Self::Interner as Interner>::InferRegion
    ) -> Option<UniverseIndex>;
    fn root_lt_var(
        &self,
        vid: <Self::Interner as Interner>::InferRegion
    ) -> <Self::Interner as Interner>::InferRegion;
    fn probe_lt_var(
        &self,
        vid: <Self::Interner as Interner>::InferRegion
    ) -> Option<<Self::Interner as Interner>::Region>;
    fn universe_of_ct(&self, ct: ConstVid) -> Option<UniverseIndex>;
    fn root_ct_var(&self, vid: ConstVid) -> ConstVid;
    fn probe_ct_var(
        &self,
        vid: ConstVid
    ) -> Option<<Self::Interner as Interner>::Const>;
}

Required Associated Types§

Required Methods§

source

fn interner(&self) -> Self::Interner

source

fn universe_of_ty(&self, ty: TyVid) -> Option<UniverseIndex>

source

fn root_ty_var(&self, vid: TyVid) -> TyVid

Resolve TyVid to its root TyVid.

source

fn probe_ty_var(&self, vid: TyVid) -> Option<<Self::Interner as Interner>::Ty>

Resolve TyVid to its inferred type, if it has been equated with a non-infer type.

source

fn universe_of_lt( &self, lt: <Self::Interner as Interner>::InferRegion ) -> Option<UniverseIndex>

source

fn root_lt_var( &self, vid: <Self::Interner as Interner>::InferRegion ) -> <Self::Interner as Interner>::InferRegion

Resolve InferRegion to its root InferRegion.

source

fn probe_lt_var( &self, vid: <Self::Interner as Interner>::InferRegion ) -> Option<<Self::Interner as Interner>::Region>

Resolve InferRegion to its inferred region, if it has been equated with a non-infer region.

source

fn universe_of_ct(&self, ct: ConstVid) -> Option<UniverseIndex>

source

fn root_ct_var(&self, vid: ConstVid) -> ConstVid

Resolve ConstVid to its root ConstVid.

source

fn probe_ct_var( &self, vid: ConstVid ) -> Option<<Self::Interner as Interner>::Const>

Resolve ConstVid to its inferred type, if it has been equated with a non-infer type.

Implementors§