[][src]Enum chalk_ir::AliasTy

pub enum AliasTy<I: Interner> {
    Projection(ProjectionTy<I>),
    Opaque(OpaqueTy<I>),
}

An alias, which is a trait indirection such as a projection or opaque type.

Variants

Projection(ProjectionTy<I>)

An associated type projection.

Opaque(OpaqueTy<I>)

An opaque type.

Implementations

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

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

Create an interned type for this alias.

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

Gets the type parameters of the Self type in this alias type.

Trait Implementations

impl<I: Interner> CastTo<TyKind<I>> for AliasTy<I>[src]

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

impl<I: Interner> Copy for AliasTy<I> where
    I::InternedSubstitution: Copy
[src]

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

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

impl<I: Interner> Fold<I> for AliasTy<I>[src]

type Result = AliasTy<I>

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 AliasTy<I>[src]

type Interner = I

The interner associated with the type.

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

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

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

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

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

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

Auto Trait Implementations

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

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

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

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

impl<I> UnwindSafe for AliasTy<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> 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>, 
[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]