[][src]Enum rustc_middle::traits::query::OutlivesBound

pub enum OutlivesBound<'tcx> {
    RegionSubRegion(Region<'tcx>, Region<'tcx>),
    RegionSubParam(Region<'tcx>, ParamTy),
    RegionSubProjection(Region<'tcx>, ProjectionTy<'tcx>),
}

Outlives bounds are relationships between generic parameters, whether they both be regions ('a: 'b) or whether types are involved (T: 'a). These relationships can be extracted from the full set of predicates we understand or also from types (in which case they are called implied bounds). They are fed to the OutlivesEnv which in turn is supplied to the region checker and other parts of the inference system.

Variants

RegionSubRegion(Region<'tcx>, Region<'tcx>)
RegionSubParam(Region<'tcx>, ParamTy)
RegionSubProjection(Region<'tcx>, ProjectionTy<'tcx>)

Trait Implementations

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

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

impl<'a, 'tcx> HashStable<StableHashingContext<'a>> for OutlivesBound<'tcx>[src]

impl<'tcx, '__lifted> Lift<'__lifted> for OutlivesBound<'tcx>[src]

type Lifted = OutlivesBound<'__lifted>

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

Auto Trait Implementations

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

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

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

impl<'tcx> Unpin for OutlivesBound<'tcx>

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

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<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<Ctxt, T> DepNodeParams<Ctxt> for T where
    Ctxt: DepContext,
    T: HashStable<<Ctxt as DepContext>::StableHashingContext> + Debug
[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, 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]