Struct rustc_middle::mir::VarBindingForm[][src]

pub struct VarBindingForm<'tcx> {
    pub binding_mode: BindingMode,
    pub opt_ty_info: Option<Span>,
    pub opt_match_place: Option<(Option<Place<'tcx>>, Span)>,
    pub pat_span: Span,


binding_mode: BindingMode

Is variable bound via x, mut x, ref x, or ref mut x?

opt_ty_info: Option<Span>

If an explicit type was provided for this variable binding, this holds the source Span of that type.

NOTE: if you want to change this to a HirId, be wary that doing so breaks incremental compilation (as of this writing), while a Span does not cause our tests to fail.

opt_match_place: Option<(Option<Place<'tcx>>, Span)>

Place of the RHS of the =, or the subject of the match where this variable is initialized. None in the case of let PATTERN;. Some((None, ..)) in the case of and let [mut] x = ... because (a) the right-hand side isn’t evaluated as a place expression. (b) it gives a way to separate this case from the remaining cases for diagnostics.

pat_span: Span

The span of the pattern in which this variable was bound.

Trait Implementations

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

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

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

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

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

Auto Trait Implementations

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

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

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

impl<'tcx> Unpin for VarBindingForm<'tcx>

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

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<'a, T> Captures<'a> for T where
    T: ?Sized

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

impl<T, U> Into<U> for T where
    U: From<T>, 

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

type Error = !

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]