[][src]Struct chalk_ir::TraitRef

pub struct TraitRef<I: Interner> {
    pub trait_id: TraitId<I>,
    pub substitution: Substitution<I>,
}

Fields

trait_id: TraitId<I>substitution: Substitution<I>

Implementations

impl<I: Interner> TraitRef<I>[src]

pub fn with_as(&self) -> impl Debug + '_[src]

Returns a "Debuggable" type that prints like P0 as Trait<P1..>

pub fn with_colon(&self) -> impl Debug + '_[src]

Returns a "Debuggable" type that prints like P0: Trait<P1..>

impl<I: Interner> TraitRef<I>[src]

pub fn type_parameters<'a>(
    &'a self,
    interner: &'a I
) -> impl Iterator<Item = Ty<I>> + 'a
[src]

pub fn self_type_parameter(&self, interner: &I) -> Ty<I>[src]

pub fn from_env(self) -> FromEnv<I>[src]

pub fn well_formed(self) -> WellFormed<I>[src]

Trait Implementations

impl<I: Interner> CastTo<TraitRef<I>> for TraitRef<I>[src]

impl<I: Interner> CastTo<WhereClause<I>> for TraitRef<I>[src]

impl<I: Clone + Interner> Clone for TraitRef<I>[src]

impl<I: Interner> Debug for TraitRef<I>[src]

impl<I: Eq + Interner> Eq for TraitRef<I>[src]

impl<I: Interner, _TI> Fold<I, _TI> for TraitRef<I> where
    _TI: TargetInterner<I>, 
[src]

type Result = TraitRef<_TI>

The type of value that will be produced once folding is done. Typically this is Self, unless Self contains borrowed values, in which case owned values are produced (for example, one can fold over a &T value where T: Fold, in which case you get back a T, not a &T). Read more

impl<I: Interner> HasInterner for TraitRef<I>[src]

type Interner = I

impl<I: Hash + Interner> Hash for TraitRef<I>[src]

impl<I: PartialEq + Interner> PartialEq<TraitRef<I>> for TraitRef<I>[src]

impl<I: Interner> StructuralEq for TraitRef<I>[src]

impl<I: Interner> StructuralPartialEq for TraitRef<I>[src]

impl<I: Interner> Visit<I> for TraitRef<I>[src]

impl<I: Interner> Zip<I> for TraitRef<I>[src]

Auto Trait Implementations

impl<I> RefUnwindSafe for TraitRef<I> where
    <I as Interner>::DefId: RefUnwindSafe,
    <I as Interner>::InternedSubstitution: RefUnwindSafe

impl<I> Send for TraitRef<I> where
    <I as Interner>::DefId: Send,
    <I as Interner>::InternedSubstitution: Send

impl<I> Sync for TraitRef<I> where
    <I as Interner>::DefId: Sync,
    <I as Interner>::InternedSubstitution: Sync

impl<I> Unpin for TraitRef<I> where
    <I as Interner>::DefId: Unpin,
    <I as Interner>::InternedSubstitution: Unpin

impl<I> UnwindSafe for TraitRef<I> where
    <I as Interner>::DefId: UnwindSafe,
    <I as Interner>::InternedSubstitution: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Cast for T[src]

impl<T, I> CastTo<DomainGoal<I>> for T where
    I: Interner,
    T: CastTo<WhereClause<I>>, 
[src]

impl<T, I> CastTo<Goal<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CastTo<ProgramClause<I>> for T where
    I: Interner,
    T: CastTo<DomainGoal<I>>, 
[src]

impl<T, I> CouldMatch<T> for T where
    I: Interner,
    T: Zip<I> + HasInterner<Interner = I> + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, I> Shift<I> for T where
    I: Interner,
    T: Fold<I, I>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, I> VisitExt<I> for T where
    I: Interner,
    T: Visit<I>, 
[src]