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 ConditionalExpressionprivate static final intprivate static final intprivate BlockIdentifierprivate BlockIdentifier -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleancanThrow(ExceptionCheck caught) voidcollectLValueUsage(LValueUsageCollector lValueUsageCollector) booleanbooleanbooleanvoidvoidvoidreplaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers) voidreplaceWithWhileLoopEnd(BlockIdentifier blockIdentifier) voidreplaceWithWhileLoopStart(BlockIdentifier blockIdentifier) voidrewriteExpressions(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers) voidsetCondition(ConditionalExpression condition) voidsetKnownBlocks(BlockIdentifier ifBlock, BlockIdentifier elseBlock) voidMethods inherited from class GotoStatement
deepClone, equivalentUnder, fallsToNext, getJumpType, getTargetStartBlock, setJumpTypeMethods inherited from class 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:
getCombinedLocin interfaceHasByteCodeLoc- Overrides:
getCombinedLocin classGotoStatement
-
dump
-
replaceSingleUsageLValues
- Specified by:
replaceSingleUsageLValuesin interfaceStatement- Overrides:
replaceSingleUsageLValuesin classGotoStatement
-
rewriteExpressions
public void rewriteExpressions(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers) - Specified by:
rewriteExpressionsin interfaceStatement- Overrides:
rewriteExpressionsin classGotoStatement
-
collectLValueUsage
- Specified by:
collectLValueUsagein interfaceStatement- Overrides:
collectLValueUsagein classGotoStatement
-
getCondition
-
setCondition
-
simplifyCondition
public void simplifyCondition() -
negateCondition
public void negateCondition() -
replaceWithWhileLoopStart
-
replaceWithWhileLoopEnd
-
getJumpTarget
- Overrides:
getJumpTargetin classGotoStatement
-
isConditional
public boolean isConditional()- Overrides:
isConditionalin classGotoStatement
-
canThrow
- Specified by:
canThrowin interfaceStatement- Overrides:
canThrowin classGotoStatement
-
getStructuredStatement
- Specified by:
getStructuredStatementin interfaceStatement- Overrides:
getStructuredStatementin classGotoStatement
-
setKnownBlocks
-
getBlocks
-
getKnownIfBlock
-
hasElseBlock
public boolean hasElseBlock() -
optimiseForTypes
public void optimiseForTypes() -
equals
- Overrides:
equalsin classGotoStatement
-