Class IfStatement
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.parse.statement.AbstractStatement
org.benf.cfr.reader.bytecode.analysis.parse.statement.JumpingStatement
org.benf.cfr.reader.bytecode.analysis.parse.statement.GotoStatement
org.benf.cfr.reader.bytecode.analysis.parse.statement.IfStatement
- All Implemented Interfaces:
HasByteCodeLoc
,DeepCloneable<Statement>
,Statement
,ComparableUnderEC
,Dumpable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ConditionalExpression
private static final int
private static final int
private BlockIdentifier
private BlockIdentifier
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
canThrow
(ExceptionCheck caught) void
collectLValueUsage
(LValueUsageCollector lValueUsageCollector) boolean
boolean
boolean
void
void
void
replaceSingleUsageLValues
(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers) void
replaceWithWhileLoopEnd
(BlockIdentifier blockIdentifier) void
replaceWithWhileLoopStart
(BlockIdentifier blockIdentifier) void
rewriteExpressions
(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers) void
setCondition
(ConditionalExpression condition) void
setKnownBlocks
(BlockIdentifier ifBlock, BlockIdentifier elseBlock) void
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.statement.GotoStatement
deepClone, equivalentUnder, fallsToNext, getJumpType, getTargetStartBlock, setJumpType
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.statement.AbstractStatement
addLoc, collectLocallyMutatedVariables, collectLValueAssignments, collectObjectCreation, doesBlackListLValueReplacement, getCompoundParts, getContainer, getCreatedLValue, getLoc, getRValue, getTargetStatement, isCompound, outerDeepClone, setContainer, setLifetimeHint, toString, wantsLifetimeHint
-
Field Details
-
JUMP_NOT_TAKEN
private static final int JUMP_NOT_TAKEN- See Also:
-
JUMP_TAKEN
private static final int JUMP_TAKEN- See Also:
-
condition
-
knownIfBlock
-
knownElseBlock
-
-
Constructor Details
-
IfStatement
-
-
Method Details
-
getCombinedLoc
- Specified by:
getCombinedLoc
in interfaceHasByteCodeLoc
- Overrides:
getCombinedLoc
in classGotoStatement
-
dump
- Specified by:
dump
in interfaceDumpable
- Overrides:
dump
in classGotoStatement
-
replaceSingleUsageLValues
- Specified by:
replaceSingleUsageLValues
in interfaceStatement
- Overrides:
replaceSingleUsageLValues
in classGotoStatement
-
rewriteExpressions
public void rewriteExpressions(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers) - Specified by:
rewriteExpressions
in interfaceStatement
- Overrides:
rewriteExpressions
in classGotoStatement
-
collectLValueUsage
- Specified by:
collectLValueUsage
in interfaceStatement
- Overrides:
collectLValueUsage
in classGotoStatement
-
getCondition
-
setCondition
-
simplifyCondition
public void simplifyCondition() -
negateCondition
public void negateCondition() -
replaceWithWhileLoopStart
-
replaceWithWhileLoopEnd
-
getJumpTarget
- Overrides:
getJumpTarget
in classGotoStatement
-
isConditional
public boolean isConditional()- Overrides:
isConditional
in classGotoStatement
-
canThrow
- Specified by:
canThrow
in interfaceStatement
- Overrides:
canThrow
in classGotoStatement
-
getStructuredStatement
- Specified by:
getStructuredStatement
in interfaceStatement
- Overrides:
getStructuredStatement
in classGotoStatement
-
setKnownBlocks
-
getBlocks
-
getKnownIfBlock
-
hasElseBlock
public boolean hasElseBlock() -
optimiseForTypes
public void optimiseForTypes() -
equals
- Overrides:
equals
in classGotoStatement
-