public abstract class SingleSuccessorBlockImpl extends BlockImpl implements SingleSuccessorBlock
Block.BlockType
Modifier and Type | Field and Description |
---|---|
protected Store.FlowRule |
flowRule
The initial value for the rule below says that EACH store at the end of a single successor
block flows to the corresponding store of the successor.
|
protected @Nullable BlockImpl |
successor
Internal representation of the successor.
|
predecessors, type
Modifier | Constructor and Description |
---|---|
protected |
SingleSuccessorBlockImpl(Block.BlockType type)
Creates a new SingleSuccessorBlock.
|
Modifier and Type | Method and Description |
---|---|
Store.FlowRule |
getFlowRule()
Returns the flow rule for information flowing from this block to its successor.
|
@Nullable Block |
getSuccessor()
Returns the non-exceptional successor block, or
null if there is no non-exceptional
successor. |
Set<Block> |
getSuccessors()
Returns the successors of this basic block.
|
void |
setFlowRule(Store.FlowRule rule)
Set the flow rule for information flowing from this block to its successor.
|
void |
setSuccessor(BlockImpl successor)
Set a basic block as the successor of this block.
|
addPredecessor, getPredecessors, getType, getUid, removePredecessor
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getLastNode, getNodes, getPredecessors, getType
protected @Nullable BlockImpl successor
Is set by setSuccessor(org.checkerframework.dataflow.cfg.block.BlockImpl)
.
protected Store.FlowRule flowRule
protected SingleSuccessorBlockImpl(Block.BlockType type)
type
- the type of this basic blockpublic @Nullable Block getSuccessor()
SingleSuccessorBlock
null
if there is no non-exceptional
successor.getSuccessor
in interface SingleSuccessorBlock
null
if there is no non-exceptional
successorpublic Set<Block> getSuccessors()
Block
getSuccessors
in interface Block
public void setSuccessor(BlockImpl successor)
successor
- the block that will be the successor of thispublic Store.FlowRule getFlowRule()
SingleSuccessorBlock
getFlowRule
in interface SingleSuccessorBlock
public void setFlowRule(Store.FlowRule rule)
SingleSuccessorBlock
setFlowRule
in interface SingleSuccessorBlock
rule
- the new flow rule for information flowing from this block to its successor