rustc_trait_selection::infer::canonical::ir

Trait UpcastFrom

source
pub trait UpcastFrom<I, T> {
    // Required method
    fn upcast_from(from: T, interner: I) -> Self;
}
Expand description

A From-like trait that takes TyCtxt to perform interner-specific transformations.

Required Methods§

source

fn upcast_from(from: T, interner: I) -> Self

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, ClauseKind<TyCtxt<'tcx>>> for Clause<'tcx>

source§

fn upcast_from( from: ClauseKind<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Clause<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, ClauseKind<TyCtxt<'tcx>>> for Predicate<'tcx>

source§

fn upcast_from( from: ClauseKind<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, PredicateKind<TyCtxt<'tcx>>> for Predicate<'tcx>

source§

fn upcast_from( from: PredicateKind<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Clause<'tcx>> for Predicate<'tcx>

source§

fn upcast_from(from: Clause<'tcx>, _tcx: TyCtxt<'tcx>) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, ClauseKind<TyCtxt<'tcx>>>> for Clause<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, ClauseKind<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Clause<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, ClauseKind<TyCtxt<'tcx>>>> for Predicate<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, ClauseKind<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, PredicateKind<TyCtxt<'tcx>>>> for Predicate<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, PredicateKind<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, OutlivesPredicate<TyCtxt<'tcx>, Region<'tcx>>>> for Predicate<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, OutlivesPredicate<TyCtxt<'tcx>, Region<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, ProjectionPredicate<TyCtxt<'tcx>>>> for Clause<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, ProjectionPredicate<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Clause<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, ProjectionPredicate<TyCtxt<'tcx>>>> for Predicate<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, ProjectionPredicate<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, TraitPredicate<TyCtxt<'tcx>>>> for Clause<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, TraitPredicate<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Clause<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, TraitPredicate<TyCtxt<'tcx>>>> for Predicate<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, TraitPredicate<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, TraitRef<TyCtxt<'tcx>>>> for Clause<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, TraitRef<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Clause<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, TraitRef<TyCtxt<'tcx>>>> for Predicate<'tcx>

source§

fn upcast_from( from: Binder<TyCtxt<'tcx>, TraitRef<TyCtxt<'tcx>>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, NormalizesTo<TyCtxt<'tcx>>> for Predicate<'tcx>

source§

fn upcast_from( from: NormalizesTo<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, OutlivesPredicate<TyCtxt<'tcx>, Region<'tcx>>> for Predicate<'tcx>

source§

fn upcast_from( from: OutlivesPredicate<TyCtxt<'tcx>, Region<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, OutlivesPredicate<TyCtxt<'tcx>, Ty<'tcx>>> for Predicate<'tcx>

source§

fn upcast_from( from: OutlivesPredicate<TyCtxt<'tcx>, Ty<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, ProjectionPredicate<TyCtxt<'tcx>>> for Clause<'tcx>

source§

fn upcast_from( from: ProjectionPredicate<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Clause<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, ProjectionPredicate<TyCtxt<'tcx>>> for Predicate<'tcx>

source§

fn upcast_from( from: ProjectionPredicate<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, TraitPredicate<TyCtxt<'tcx>>> for Clause<'tcx>

source§

fn upcast_from( from: TraitPredicate<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Clause<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, TraitPredicate<TyCtxt<'tcx>>> for Predicate<'tcx>

source§

fn upcast_from( from: TraitPredicate<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, TraitRef<TyCtxt<'tcx>>> for Clause<'tcx>

source§

fn upcast_from(from: TraitRef<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>) -> Clause<'tcx>

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, TraitRef<TyCtxt<'tcx>>> for Predicate<'tcx>

source§

fn upcast_from( from: TraitRef<TyCtxt<'tcx>>, tcx: TyCtxt<'tcx>, ) -> Predicate<'tcx>

Implementors§

source§

impl<'tcx> UpcastFrom<TyCtxt<'tcx>, Binder<TyCtxt<'tcx>, TraitRef<TyCtxt<'tcx>>>> for Binder<TyCtxt<'tcx>, TraitPredicate<TyCtxt<'tcx>>>

source§

impl<I> UpcastFrom<I, TraitRef<I>> for TraitPredicate<I>
where I: Interner,

source§

impl<I, T> UpcastFrom<I, T> for T