Trait rustc_type_ir::inherent::Clause

source ·
pub trait Clause<I: Interner<Clause = Self>>: Copy + Debug + Hash + Eq + TypeFoldable<I> + UpcastFrom<I, Binder<I, ClauseKind<I>>> + UpcastFrom<I, TraitRef<I>> + UpcastFrom<I, Binder<I, TraitRef<I>>> + UpcastFrom<I, ProjectionPredicate<I>> + UpcastFrom<I, Binder<I, ProjectionPredicate<I>>> + IntoKind<Kind = Binder<I, ClauseKind<I>>> + Elaboratable<I> {
    // Required method
    fn instantiate_supertrait(
        self,
        cx: I,
        trait_ref: Binder<I, TraitRef<I>>,
    ) -> Self;

    // Provided methods
    fn as_trait_clause(self) -> Option<Binder<I, TraitPredicate<I>>> { ... }
    fn as_projection_clause(self) -> Option<Binder<I, ProjectionPredicate<I>>> { ... }
}

Required Methods§

source

fn instantiate_supertrait( self, cx: I, trait_ref: Binder<I, TraitRef<I>>, ) -> Self

Performs a instantiation suitable for going from a poly-trait-ref to supertraits that must hold if that poly-trait-ref holds. This is slightly different from a normal instantiation in terms of what happens with bound regions.

Provided Methods§

Object Safety§

This trait is not object safe.

Implementors§