Struct flowistry_pdg::rustc::mir::VarBindingForm
source · 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.
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§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more