# Trait rustc_trait_selection::infer::canonical::ir::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