[][src]Enum rustc_middle::ty::ExistentialPredicate

pub enum ExistentialPredicate<'tcx> {
    Trait(ExistentialTraitRef<'tcx>),
    Projection(ExistentialProjection<'tcx>),
    AutoTrait(DefId),
}

Variants

Trait(ExistentialTraitRef<'tcx>)

E.g., Iterator.

Projection(ExistentialProjection<'tcx>)

E.g., Iterator::Item = T.

AutoTrait(DefId)

E.g., Send.

Implementations

impl<'tcx> ExistentialPredicate<'tcx>[src]

pub fn stable_cmp(&self, tcx: TyCtxt<'tcx>, other: &Self) -> Ordering[src]

Compares via an ordering that will not change if modules are reordered or other changes are made to the tree. In particular, this ordering is preserved across incremental compilations.

Trait Implementations

impl<'tcx> Clone for ExistentialPredicate<'tcx>[src]

impl<'tcx> Copy for ExistentialPredicate<'tcx>[src]

impl<'tcx> Debug for ExistentialPredicate<'tcx>[src]

impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for ExistentialPredicate<'tcx>[src]

impl<'tcx> Display for ExistentialPredicate<'tcx>[src]

impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for ExistentialPredicate<'tcx>[src]

impl<'tcx> Eq for ExistentialPredicate<'tcx>[src]

impl<'tcx> Hash for ExistentialPredicate<'tcx>[src]

impl<'tcx, '__ctx> HashStable<StableHashingContext<'__ctx>> for ExistentialPredicate<'tcx>[src]

impl<'a, 'tcx> Lift<'tcx> for ExistentialPredicate<'a>[src]

type Lifted = ExistentialPredicate<'tcx>

impl<'tcx> Ord for ExistentialPredicate<'tcx>[src]

impl<'tcx> PartialEq<ExistentialPredicate<'tcx>> for ExistentialPredicate<'tcx>[src]

impl<'tcx> PartialOrd<ExistentialPredicate<'tcx>> for ExistentialPredicate<'tcx>[src]

impl<'tcx, P: PrettyPrinter<'tcx>> Print<'tcx, P> for ExistentialPredicate<'tcx>[src]

type Output = P

type Error = Error

impl<'tcx> StructuralEq for ExistentialPredicate<'tcx>[src]

impl<'tcx> StructuralPartialEq for ExistentialPredicate<'tcx>[src]

impl<'tcx> TypeFoldable<'tcx> for ExistentialPredicate<'tcx>[src]

Auto Trait Implementations

impl<'tcx> !RefUnwindSafe for ExistentialPredicate<'tcx>

impl<'tcx> !Send for ExistentialPredicate<'tcx>

impl<'tcx> !Sync for ExistentialPredicate<'tcx>

impl<'tcx> Unpin for ExistentialPredicate<'tcx>

impl<'tcx> !UnwindSafe for ExistentialPredicate<'tcx>

Blanket Implementations

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

impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
    T: Copy
[src]

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

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

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

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

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

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

type Error = !

impl<'tcx, T> Subst<'tcx> for T where
    T: TypeFoldable<'tcx>, 
[src]

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

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

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> WithConstness for T[src]