rustc_middle::ty::relate::solver_relating

Trait 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>,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so 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>,