Trait rustc_middle::ty::relate::Relate

source ·
pub trait Relate<I>: TypeFoldable<I> + PartialEq + Copy
where I: Interner,
{ // Required method fn relate<R>( relation: &mut R, a: Self, b: Self, ) -> Result<Self, TypeError<I>> where R: TypeRelation<I>; }

Required Methods§

source

fn relate<R>(relation: &mut R, a: Self, b: Self) -> Result<Self, TypeError<I>>
where R: TypeRelation<I>,

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'tcx> Relate<TyCtxt<'tcx>> for Safety

source§

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

source§

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

source§

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

Implementors§

source§

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

source§

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

source§

impl<'tcx> Relate<TyCtxt<'tcx>> for Expr<'tcx>

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<I> Relate<I> for BoundConstness
where I: Interner,

source§

impl<I> Relate<I> for PredicatePolarity
where I: Interner,

source§

impl<I> Relate<I> for AliasTerm<I>
where I: Interner,

source§

impl<I> Relate<I> for ExistentialProjection<I>
where I: Interner,

source§

impl<I> Relate<I> for ExistentialTraitRef<I>
where I: Interner,

source§

impl<I> Relate<I> for TraitPredicate<I>
where I: Interner,

source§

impl<I> Relate<I> for TraitRef<I>
where I: Interner,

source§

impl<I> Relate<I> for AliasTy<I>
where I: Interner,

source§

impl<I> Relate<I> for FnSig<I>
where I: Interner,

source§

impl<I, T> Relate<I> for Binder<I, T>
where I: Interner, T: Relate<I>,