pub struct Block<'tcx> {
pub index: usize,
pub is_cleanup: bool,
pub next: FxHashSet<usize>,
pub assignments: Vec<Assignment<'tcx>>,
pub const_value: Vec<ConstValue>,
pub assigned_locals: FxHashSet<usize>,
pub terminator: Term<'tcx>,
pub scc: SccInfo,
}Expand description
Each block is a strongly-connected component on the control-flow graph.
Fields§
§index: usize§is_cleanup: bool§next: FxHashSet<usize>§assignments: Vec<Assignment<'tcx>>§const_value: Vec<ConstValue>§assigned_locals: FxHashSet<usize>§terminator: Term<'tcx>§scc: SccInfoAll nodes belongs to a SCC. This field could be a single node SCC. The loops in the CFG are natural loops, so each SCC has only one enter.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'tcx> Freeze for Block<'tcx>
impl<'tcx> !RefUnwindSafe for Block<'tcx>
impl<'tcx> Send for Block<'tcx>
impl<'tcx> Sync for Block<'tcx>
impl<'tcx> Unpin for Block<'tcx>
impl<'tcx> !UnwindSafe for Block<'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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more