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, }
Fields
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]
fn clone(&self) -> VarBindingForm<'tcx>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[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]
fn hash_stable(
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
[src]
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
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,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> MaybeResult<T> for T
[src]
type Error = !
pub fn from(Result<T, <T as MaybeResult<T>>::Error>) -> T
[src]
pub fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.