Trait rustc_trait_selection::infer::at::ToTrace

source ·
pub trait ToTrace<'tcx>: Relate<'tcx> + Copy {
    // Required method
    fn to_trace(
        cause: &ObligationCause<'tcx>,
        a_is_expected: bool,
        a: Self,
        b: Self
    ) -> TypeTrace<'tcx>;
}

Required Methods§

source

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: Self, b: Self ) -> TypeTrace<'tcx>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'tcx> ToTrace<'tcx> for ImplSubject<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: ImplSubject<'tcx>, b: ImplSubject<'tcx> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for Const<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: Const<'tcx>, b: Const<'tcx> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for GenericArg<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: GenericArg<'tcx>, b: GenericArg<'tcx> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for TraitRef<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: TraitRef<'tcx>, b: TraitRef<'tcx> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for Region<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: Region<'tcx>, b: Region<'tcx> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for Term<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: Term<'tcx>, b: Term<'tcx> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for Ty<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: Ty<'tcx>, b: Ty<'tcx> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for AliasTy<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: AliasTy<'tcx>, b: AliasTy<'tcx> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for Binder<'tcx, ExistentialProjection<'tcx>>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: Binder<'tcx, ExistentialProjection<'tcx>>, b: Binder<'tcx, ExistentialProjection<'tcx>> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for Binder<'tcx, ExistentialTraitRef<'tcx>>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: Binder<'tcx, ExistentialTraitRef<'tcx>>, b: Binder<'tcx, ExistentialTraitRef<'tcx>> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for Binder<'tcx, FnSig<'tcx>>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: Binder<'tcx, FnSig<'tcx>>, b: Binder<'tcx, FnSig<'tcx>> ) -> TypeTrace<'tcx>

source§

impl<'tcx> ToTrace<'tcx> for FnSig<'tcx>

source§

fn to_trace( cause: &ObligationCause<'tcx>, a_is_expected: bool, a: FnSig<'tcx>, b: FnSig<'tcx> ) -> TypeTrace<'tcx>

Implementors§