[−][src]Enum rustc_middle::ty::trait_def::TraitSpecializationKind

pub enum TraitSpecializationKind {
    None,
    Marker,
    AlwaysApplicable,
}

Whether this trait is treated specially by the standard library specialization lint.

Variants

None

The default. Specializing on this trait is not allowed.

Marker

Specializing on this trait is allowed because it doesn't have any methods. For example Sized or FusedIterator. Applies to traits with the rustc_unsafe_specialization_marker attribute.

AlwaysApplicable

Specializing on this trait is allowed because all of the impls of this trait are "always applicable". Always applicable means that if X<'x>: T<'y> for any lifetimes, then for<'a, 'b> X<'a>: T<'b>. Applies to traits with the rustc_specialization_trait attribute.

Trait Implementations

impl Clone for TraitSpecializationKind[src]

impl Copy for TraitSpecializationKind[src]

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

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

impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for TraitSpecializationKind[src]

impl PartialEq<TraitSpecializationKind> for TraitSpecializationKind[src]

impl StructuralPartialEq for TraitSpecializationKind[src]

Auto Trait Implementations

impl RefUnwindSafe for TraitSpecializationKind

impl Send for TraitSpecializationKind

impl Sync for TraitSpecializationKind

impl Unpin for TraitSpecializationKind

impl UnwindSafe for TraitSpecializationKind

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