Enum rustc_middle::ty::UpvarCapture[][src]

pub enum UpvarCapture<'tcx> {
    ByValue(Option<Span>),
    ByRef(UpvarBorrow<'tcx>),
}

Information describing the capture of an upvar. This is computed during typeck, specifically by regionck.

Variants

ByValue(Option<Span>)

Upvar is captured by value. This is always true when the closure is labeled move, but can also be true in other cases depending on inference.

If the upvar was inferred to be captured by value (e.g. move was not used), then the Span points to a usage that required it. There may be more than one such usage (e.g. || { a; a; }), in which case we pick an arbitrary one.

ByRef(UpvarBorrow<'tcx>)

Upvar is captured by reference.

Trait Implementations

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

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

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

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

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

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

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

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

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

Auto Trait Implementations

impl<'tcx> RefUnwindSafe for UpvarCapture<'tcx>

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

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

impl<'tcx> Unpin for UpvarCapture<'tcx>

impl<'tcx> UnwindSafe for UpvarCapture<'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, 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]