[][src]Enum ra_ap_hir_ty::ImplTraitLoweringMode

pub enum ImplTraitLoweringMode {
    Opaque,
    Param,
    Variable,
    Disallowed,
}

Variants

Opaque

impl Trait gets lowered into an opaque type that doesn't unify with anything except itself. This is used in places where values flow 'out', i.e. for arguments of the function we're currently checking, and return types of functions we're calling.

Param

impl Trait gets lowered into a type variable. Used for argument position impl Trait when inside the respective function, since it allows us to support that without Chalk.

Variable

impl Trait gets lowered into a variable that can unify with some type. This is used in places where values flow 'in', i.e. for arguments of functions we're calling, and the return type of the function we're currently checking.

Disallowed

impl Trait is disallowed and will be an error.

Trait Implementations

impl Clone for ImplTraitLoweringMode[src]

impl Copy for ImplTraitLoweringMode[src]

impl Debug for ImplTraitLoweringMode[src]

impl Eq for ImplTraitLoweringMode[src]

impl PartialEq<ImplTraitLoweringMode> for ImplTraitLoweringMode[src]

impl StructuralEq for ImplTraitLoweringMode[src]

impl StructuralPartialEq for ImplTraitLoweringMode[src]

Auto Trait Implementations

Blanket Implementations

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

impl<T> Any for T where
    T: Any

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> CloneAny for T where
    T: Clone + Any

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[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.