public class StructuredSwitch extends AbstractStructuredBlockStatement implements BoxingProcessor
| Modifier and Type | Field and Description |
|---|---|
private BlockIdentifier |
blockIdentifier |
private boolean |
safeExpression |
private Expression |
switchOn |
| Constructor and Description |
|---|
StructuredSwitch(BytecodeLoc loc,
Expression switchOn,
Op04StructuredStatement body,
BlockIdentifier blockIdentifier) |
StructuredSwitch(BytecodeLoc loc,
Expression switchOn,
Op04StructuredStatement body,
BlockIdentifier blockIdentifier,
boolean safeExpression) |
| Modifier and Type | Method and Description |
|---|---|
void |
applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter,
SSAIdentifiers ssaIdentifiers,
StatementContainer statementContainer,
ExpressionRewriterFlags flags) |
void |
collectTypeUsages(TypeUsageCollector collector) |
Dumper |
dump(Dumper dumper) |
BlockIdentifier |
getBlockIdentifier() |
BlockIdentifier |
getBreakableBlockOrNull() |
BytecodeLoc |
getCombinedLoc() |
Expression |
getSwitchOn() |
boolean |
isOnlyEmptyDefault() |
boolean |
isProperlyStructured() |
boolean |
isSafeExpression() |
boolean |
isScopeBlock() |
void |
linearizeInto(java.util.List<StructuredStatement> out) |
boolean |
match(MatchIterator<StructuredStatement> matchIterator,
MatchResultCollector matchResultCollector) |
boolean |
rewriteBoxing(PrimitiveBoxingRewriter boxingRewriter) |
void |
rewriteExpressions(ExpressionRewriter expressionRewriter) |
boolean |
supportsBreak() |
void |
traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer) |
getBody, isRecursivelyStructured, transformStructuredChildrenaddLoc, alwaysDefines, canDefine, canFall, claimBlock, fallsNopToNext, findCreatedHere, getContainer, getInline, getLoc, informBlockHeirachy, inlineable, isEffectivelyNOP, markCreator, setContainer, suggestName, supportsContinueBreak, toString, transformStructuredChildrenInReverseprivate Expression switchOn
private final BlockIdentifier blockIdentifier
private final boolean safeExpression
public StructuredSwitch(BytecodeLoc loc, Expression switchOn, Op04StructuredStatement body, BlockIdentifier blockIdentifier, boolean safeExpression)
public StructuredSwitch(BytecodeLoc loc, Expression switchOn, Op04StructuredStatement body, BlockIdentifier blockIdentifier)
public BytecodeLoc getCombinedLoc()
getCombinedLoc in interface HasByteCodeLocpublic Expression getSwitchOn()
public void collectTypeUsages(TypeUsageCollector collector)
collectTypeUsages in interface TypeUsageCollectablecollectTypeUsages in class AbstractStructuredBlockStatementpublic BlockIdentifier getBreakableBlockOrNull()
getBreakableBlockOrNull in interface StructuredStatementgetBreakableBlockOrNull in class AbstractStructuredStatementpublic boolean supportsBreak()
supportsBreak in interface StructuredStatementsupportsBreak in class AbstractStructuredStatementpublic boolean isProperlyStructured()
isProperlyStructured in interface StructuredStatementisProperlyStructured in class AbstractStructuredStatementpublic boolean isScopeBlock()
isScopeBlock in interface StructuredStatementisScopeBlock in class AbstractStructuredStatementpublic boolean rewriteBoxing(PrimitiveBoxingRewriter boxingRewriter)
rewriteBoxing in interface BoxingProcessorpublic void applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
applyNonArgExpressionRewriter in interface BoxingProcessorpublic BlockIdentifier getBlockIdentifier()
public void linearizeInto(java.util.List<StructuredStatement> out)
linearizeInto in interface StructuredStatementpublic void traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
traceLocalVariableScope in interface StructuredStatementpublic boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
match in interface Matcher<StructuredStatement>match in class AbstractStructuredStatementpublic void rewriteExpressions(ExpressionRewriter expressionRewriter)
rewriteExpressions in interface StructuredStatementpublic boolean isOnlyEmptyDefault()
public boolean isSafeExpression()