pub struct LeftHandSideBuilder { /* private fields */ }
Expand description
A builder for a LeftHandSide
.
Implementations§
Source§impl LeftHandSideBuilder
impl LeftHandSideBuilder
Sourcepub fn assignment(
&mut self,
name: Option<String>,
type: Option<Type>,
value: impl Into<AssignmentRhs>,
attributes: Vec<Attribute>,
) -> ValueId
pub fn assignment( &mut self, name: Option<String>, type: Option<Type>, value: impl Into<AssignmentRhs>, attributes: Vec<Attribute>, ) -> ValueId
Create a new assignment statement.
Returns the value defined by the assignment.
§Panics
Panics if name
(when given) does not start with ‘%’.
Sourcepub fn block(&mut self, name: Option<String>, predecessors: u32) -> BlockId
pub fn block(&mut self, name: Option<String>, predecessors: u32) -> BlockId
Create a new basic block.
Declare that the block has predecessors
number of incoming edges in
the control-flow graph.
§Panics
Panics if name
(when given) does not start with ‘%’.
Sourcepub fn pc(&mut self, x: impl Into<Operand>, y: impl Into<Operand>)
pub fn pc(&mut self, x: impl Into<Operand>, y: impl Into<Operand>)
Create a path condition.
Expresses the fact that x
must equal y
for the replacement to be
valid.
Sourcepub fn block_pc(
&mut self,
block: BlockId,
predecessor: u32,
x: impl Into<Operand>,
y: impl Into<Operand>,
)
pub fn block_pc( &mut self, block: BlockId, predecessor: u32, x: impl Into<Operand>, y: impl Into<Operand>, )
Create a block path condition.
Expresses that x
is equal to y
on an incoming edge to block
in the
control-flow graph.
§Panics
Panics if predecessor
is greater than or equal to block
’s number of
predecessors.
Sourcepub fn finish(
self,
lhs: ValueId,
attributes: impl IntoIterator<Item = RootAttribute>,
) -> LeftHandSide
pub fn finish( self, lhs: ValueId, attributes: impl IntoIterator<Item = RootAttribute>, ) -> LeftHandSide
Finish building this LeftHandSide
.
Sourcepub fn get_value(&self, id: ValueId) -> &Assignment
pub fn get_value(&self, id: ValueId) -> &Assignment
Get the assignment that created the given value.
§Panics
May panic when given a ValudId
from a different LHS, RHS, or
replacement.
Trait Implementations§
Source§impl Clone for LeftHandSideBuilder
impl Clone for LeftHandSideBuilder
Source§fn clone(&self) -> LeftHandSideBuilder
fn clone(&self) -> LeftHandSideBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more