Trait rustc_middle::ty::relate::Relate

source ·
pub trait Relate<'tcx>: TypeFoldable<TyCtxt<'tcx>> + PartialEq + Copy {
    // Required method
    fn relate<R: TypeRelation<'tcx>>(
        relation: &mut R,
        a: Self,
        b: Self
    ) -> RelateResult<'tcx, Self>;
}

Required Methods§

source

fn relate<R: TypeRelation<'tcx>>( relation: &mut R, a: Self, b: Self ) -> RelateResult<'tcx, Self>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'tcx> Relate<'tcx> for Unsafety

source§

fn relate<R: TypeRelation<'tcx>>( _relation: &mut R, a: Unsafety, b: Unsafety ) -> RelateResult<'tcx, Unsafety>

source§

impl<'tcx> Relate<'tcx> for Abi

source§

fn relate<R: TypeRelation<'tcx>>( _relation: &mut R, a: Abi, b: Abi ) -> RelateResult<'tcx, Abi>

Implementors§

source§

impl<'tcx> Relate<'tcx> for &'tcx List<PolyExistentialPredicate<'tcx>>

source§

impl<'tcx> Relate<'tcx> for BoundConstness

source§

impl<'tcx> Relate<'tcx> for ImplSubject<'tcx>

source§

impl<'tcx> Relate<'tcx> for PredicatePolarity

source§

impl<'tcx> Relate<'tcx> for Const<'tcx>

source§

impl<'tcx> Relate<'tcx> for GenericArg<'tcx>

source§

impl<'tcx> Relate<'tcx> for Pattern<'tcx>

source§

impl<'tcx> Relate<'tcx> for ExistentialProjection<'tcx>

source§

impl<'tcx> Relate<'tcx> for ExistentialTraitRef<'tcx>

source§

impl<'tcx> Relate<'tcx> for TraitPredicate<'tcx>

source§

impl<'tcx> Relate<'tcx> for TraitRef<'tcx>

source§

impl<'tcx> Relate<'tcx> for Region<'tcx>

source§

impl<'tcx> Relate<'tcx> for Term<'tcx>

source§

impl<'tcx> Relate<'tcx> for Ty<'tcx>

source§

impl<'tcx> Relate<'tcx> for AliasTy<'tcx>

source§

impl<'tcx> Relate<'tcx> for ClosureArgs<'tcx>

source§

impl<'tcx> Relate<'tcx> for CoroutineArgs<'tcx>

source§

impl<'tcx> Relate<'tcx> for FnSig<'tcx>

source§

impl<'tcx> Relate<'tcx> for CoroutineWitness<'tcx>

source§

impl<'tcx> Relate<'tcx> for GenericArgsRef<'tcx>

source§

impl<'tcx, T: Relate<'tcx>> Relate<'tcx> for Binder<'tcx, T>