pub enum TerminatorEdges<'mir, 'tcx> {
None,
Single(BasicBlock),
Double(BasicBlock, BasicBlock),
AssignOnReturn {
return_: &'mir [BasicBlock],
cleanup: Option<BasicBlock>,
place: CallReturnPlaces<'mir, 'tcx>,
},
SwitchInt {
targets: &'mir SwitchTargets,
discr: &'mir Operand<'tcx>,
},
}
Variants§
None
For terminators that have no successor, like return
.
Single(BasicBlock)
For terminators that a single successor, like goto
, and assert
without cleanup block.
Double(BasicBlock, BasicBlock)
For terminators that two successors, assert
with cleanup block and falseEdge
.
AssignOnReturn
Special action for Yield
, Call
and InlineAsm
terminators.
Fields
§
return_: &'mir [BasicBlock]
§
cleanup: Option<BasicBlock>
The cleanup block, if it exists.
§
place: CallReturnPlaces<'mir, 'tcx>
SwitchInt
Special edge for SwitchInt
.
Auto Trait Implementations§
impl<'mir, 'tcx> Freeze for TerminatorEdges<'mir, 'tcx>
impl<'mir, 'tcx> !RefUnwindSafe for TerminatorEdges<'mir, 'tcx>
impl<'mir, 'tcx> Send for TerminatorEdges<'mir, 'tcx>
impl<'mir, 'tcx> Sync for TerminatorEdges<'mir, 'tcx>
impl<'mir, 'tcx> Unpin for TerminatorEdges<'mir, 'tcx>
impl<'mir, 'tcx> !UnwindSafe for TerminatorEdges<'mir, '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