public class StructuredFor extends AbstractStructuredBlockStatement
Modifier and Type | Field and Description |
---|---|
private java.util.List<AbstractAssignmentExpression> |
assignments |
private BlockIdentifier |
block |
private ConditionalExpression |
condition |
private AssignmentSimple |
initial |
private boolean |
isCreator |
Constructor and Description |
---|
StructuredFor(BytecodeLoc loc,
ConditionalExpression condition,
AssignmentSimple initial,
java.util.List<AbstractAssignmentExpression> assignments,
Op04StructuredStatement body,
BlockIdentifier block) |
Modifier and Type | Method and Description |
---|---|
boolean |
canDefine(LValue scopedEntity,
ScopeDiscoverInfoCache factCache) |
void |
collectTypeUsages(TypeUsageCollector collector) |
Dumper |
dump(Dumper dumper) |
java.util.List<LValue> |
findCreatedHere() |
BlockIdentifier |
getBlock() |
BlockIdentifier |
getBreakableBlockOrNull() |
BytecodeLoc |
getCombinedLoc() |
boolean |
isScopeBlock() |
void |
linearizeInto(java.util.List<StructuredStatement> out) |
void |
markCreator(LValue scopedEntity,
StatementContainer<StructuredStatement> hint) |
boolean |
match(MatchIterator<StructuredStatement> matchIterator,
MatchResultCollector matchResultCollector) |
void |
rewriteExpressions(ExpressionRewriter expressionRewriter) |
java.lang.String |
suggestName(LocalVariable createdHere,
Predicate<java.lang.String> testNameUsedFn) |
boolean |
supportsBreak() |
void |
traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer) |
getBody, isRecursivelyStructured, transformStructuredChildren
addLoc, alwaysDefines, canFall, claimBlock, fallsNopToNext, getContainer, getInline, getLoc, informBlockHeirachy, inlineable, isEffectivelyNOP, isProperlyStructured, setContainer, supportsContinueBreak, toString, transformStructuredChildrenInReverse
private ConditionalExpression condition
private AssignmentSimple initial
private java.util.List<AbstractAssignmentExpression> assignments
private final BlockIdentifier block
private boolean isCreator
public StructuredFor(BytecodeLoc loc, ConditionalExpression condition, AssignmentSimple initial, java.util.List<AbstractAssignmentExpression> assignments, Op04StructuredStatement body, BlockIdentifier block)
public void collectTypeUsages(TypeUsageCollector collector)
collectTypeUsages
in interface TypeUsageCollectable
collectTypeUsages
in class AbstractStructuredBlockStatement
public BytecodeLoc getCombinedLoc()
public boolean isScopeBlock()
isScopeBlock
in interface StructuredStatement
isScopeBlock
in class AbstractStructuredStatement
public void linearizeInto(java.util.List<StructuredStatement> out)
public BlockIdentifier getBreakableBlockOrNull()
getBreakableBlockOrNull
in interface StructuredStatement
getBreakableBlockOrNull
in class AbstractStructuredStatement
public boolean supportsBreak()
supportsBreak
in interface StructuredStatement
supportsBreak
in class AbstractStructuredStatement
public void traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
public void markCreator(LValue scopedEntity, StatementContainer<StructuredStatement> hint)
markCreator
in interface StructuredStatement
markCreator
in class AbstractStructuredStatement
public boolean canDefine(LValue scopedEntity, ScopeDiscoverInfoCache factCache)
canDefine
in interface StructuredStatement
canDefine
in class AbstractStructuredStatement
public java.util.List<LValue> findCreatedHere()
findCreatedHere
in interface StructuredStatement
findCreatedHere
in class AbstractStructuredStatement
public java.lang.String suggestName(LocalVariable createdHere, Predicate<java.lang.String> testNameUsedFn)
suggestName
in interface StructuredStatement
suggestName
in class AbstractStructuredStatement
public void rewriteExpressions(ExpressionRewriter expressionRewriter)
public BlockIdentifier getBlock()
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
match
in interface Matcher<StructuredStatement>
match
in class AbstractStructuredStatement