Class RawSwitchStatement
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.parse.statement.AbstractStatement
org.benf.cfr.reader.bytecode.analysis.parse.statement.RawSwitchStatement
- All Implemented Interfaces:
HasByteCodeLoc, DeepCloneable<Statement>, Statement, ComparableUnderEC, Dumpable
A 'raw' switch contains the original bytecode information about the switch. We split this up into
SwitchStatements and CaseStatements. Case statements are really no more than glorified comments,
as they perform no function other than to serve as labels. However, we can embed useful information in
them.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionRawSwitchStatement(BytecodeLoc loc, Expression switchOn, DecodedSwitch switchData) -
Method Summary
Modifier and TypeMethodDescriptionvoidcollectLValueUsage(LValueUsageCollector lValueUsageCollector) deepClone(CloneHelper cloneHelper) final booleanequivalentUnder(Object o, EquivalenceConstraint constraint) booleangetSwitchStatement(BlockIdentifier blockIdentifier) voidreplaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers) voidrewriteExpressions(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers) Methods inherited from class AbstractStatement
addLoc, canThrow, collectLocallyMutatedVariables, collectLValueAssignments, collectObjectCreation, doesBlackListLValueReplacement, getCompoundParts, getContainer, getCreatedLValue, getLoc, getRValue, getTargetStatement, isCompound, outerDeepClone, setContainer, setLifetimeHint, toString, wantsLifetimeHint
-
Field Details
-
switchOn
-
switchData
-
-
Constructor Details
-
RawSwitchStatement
-
-
Method Details
-
getCombinedLoc
-
dump
-
deepClone
-
replaceSingleUsageLValues
-
rewriteExpressions
public void rewriteExpressions(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers) -
collectLValueUsage
-
getSwitchData
-
getSwitchOn
-
getStructuredStatement
-
getSwitchStatement
-
equivalentUnder
-
fallsToNext
public boolean fallsToNext()- Specified by:
fallsToNextin interfaceStatement- Overrides:
fallsToNextin classAbstractStatement
-