Enum rustc_middle::mir::ConstraintCategory[][src]

pub enum ConstraintCategory {
    Return(ReturnConstraint),
    Yield,
    UseAsConst,
    UseAsStatic,
    TypeAnnotation,
    Cast,
    ClosureBounds,
    CallArgument,
    CopyBound,
    SizedBound,
    Assignment,
    OpaqueType,
    ClosureUpvar(HirId),
    Boring,
    BoringNoLocation,
    Internal,
}

Outlives-constraints can be categorized to determine whether and why they are interesting (for error reporting). Order of variants indicates sort order of the category, thereby influencing diagnostic output.

See also rustc_mir::borrow_check::constraints.

Variants

Return(ReturnConstraint)
Yield
UseAsConst
UseAsStatic
TypeAnnotation
Cast
ClosureBounds

A constraint that came from checking the body of a closure.

We try to get the category that the closure used when reporting this.

CallArgument
CopyBound
SizedBound
Assignment
OpaqueType
ClosureUpvar(HirId)
Boring

A “boring” constraint (caused by the given location) is one that the user probably doesn’t want to see described in diagnostics, because it is kind of an artifact of the type system setup. Example: x = Foo { field: y } technically creates intermediate regions representing the “type of Foo { field: y }”, and data flows from y into those variables, but they are not very interesting. The assignment into x on the other hand might be.

BoringNoLocation
Internal

A constraint that doesn’t correspond to anything the user sees.

Trait Implementations

impl Clone for ConstraintCategory[src]

impl Copy for ConstraintCategory[src]

impl Debug for ConstraintCategory[src]

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

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

impl Eq for ConstraintCategory[src]

impl Hash for ConstraintCategory[src]

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

impl Ord for ConstraintCategory[src]

impl PartialEq<ConstraintCategory> for ConstraintCategory[src]

impl PartialOrd<ConstraintCategory> for ConstraintCategory[src]

impl StructuralEq for ConstraintCategory[src]

impl StructuralPartialEq for ConstraintCategory[src]

Auto Trait Implementations

impl RefUnwindSafe for ConstraintCategory

impl Send for ConstraintCategory

impl Sync for ConstraintCategory

impl Unpin for ConstraintCategory

impl UnwindSafe for ConstraintCategory

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]