Enum cranelift_isle::serialize::ControlFlow
source · pub enum ControlFlow {
Match {
source: BindingId,
arms: Vec<MatchArm>,
},
Equal {
a: BindingId,
b: BindingId,
body: Block,
},
Loop {
result: BindingId,
body: Block,
},
Return {
pos: Pos,
result: BindingId,
},
}
Expand description
What kind of control-flow structure do we need to emit here?
Variants§
Match
Fields
Test a binding site against one or more mutually-exclusive patterns and branch to the appropriate block if a pattern matches.
Equal
Fields
Test whether two binding sites have values which are equal when evaluated on the current input.
Loop
Fields
§
result: BindingId
A binding site of type Binding::Iterator. Its source binding site must be a multi-extractor or multi-constructor call.
Evaluate a block once with each value of the given binding site.
Return
Fields
Return a result from the right-hand side of a rule. If we’re building a multi-constructor then this doesn’t actually return, but adds to a list of results instead. Otherwise this return stops evaluation before any later steps.
Auto Trait Implementations§
impl RefUnwindSafe for ControlFlow
impl Send for ControlFlow
impl Sync for ControlFlow
impl Unpin for ControlFlow
impl UnwindSafe for ControlFlow
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