Class UnstructuredIf
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractUnStructuredStatement
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.UnstructuredIf
-
- All Implemented Interfaces:
HasByteCodeLoc
,Matcher<StructuredStatement>
,StructuredStatement
,Dumpable
,TypeUsageCollectable
public class UnstructuredIf extends AbstractUnStructuredStatement
-
-
Field Summary
Fields Modifier and Type Field Description private ConditionalExpression
conditionalExpression
private BlockIdentifier
knownElseBlock
private BlockIdentifier
knownIfBlock
private Op04StructuredStatement
setIfBlock
-
Constructor Summary
Constructors Constructor Description UnstructuredIf(BytecodeLoc loc, ConditionalExpression conditionalExpression, BlockIdentifier knownIfBlock, BlockIdentifier knownElseBlock)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description StructuredStatement
claimBlock(Op04StructuredStatement innerBlock, BlockIdentifier blockIdentifier, java.util.Vector<BlockIdentifier> blocksCurrentlyIn)
void
collectTypeUsages(TypeUsageCollector collector)
StructuredStatement
convertEmptyToGoto()
Dumper
dump(Dumper dumper)
BytecodeLoc
getCombinedLoc()
private static Op04StructuredStatement
unpackElseIfBlock(Op04StructuredStatement elseBlock)
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractUnStructuredStatement
findCreatedHere, getBreakableBlockOrNull, isEffectivelyNOP, isProperlyStructured, isRecursivelyStructured, linearizeInto, match, rewriteExpressions, suggestName, traceLocalVariableScope, transformStructuredChildren, transformStructuredChildrenInReverse
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
addLoc, alwaysDefines, canDefine, canFall, fallsNopToNext, getContainer, getInline, getLoc, informBlockHeirachy, inlineable, isScopeBlock, markCreator, setContainer, supportsBreak, supportsContinueBreak, toString
-
-
-
-
Field Detail
-
conditionalExpression
private ConditionalExpression conditionalExpression
-
setIfBlock
private Op04StructuredStatement setIfBlock
-
knownIfBlock
private BlockIdentifier knownIfBlock
-
knownElseBlock
private BlockIdentifier knownElseBlock
-
-
Constructor Detail
-
UnstructuredIf
public UnstructuredIf(BytecodeLoc loc, ConditionalExpression conditionalExpression, BlockIdentifier knownIfBlock, BlockIdentifier knownElseBlock)
-
-
Method Detail
-
getCombinedLoc
public BytecodeLoc getCombinedLoc()
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
-
claimBlock
public StructuredStatement claimBlock(Op04StructuredStatement innerBlock, BlockIdentifier blockIdentifier, java.util.Vector<BlockIdentifier> blocksCurrentlyIn)
- Specified by:
claimBlock
in interfaceStructuredStatement
- Overrides:
claimBlock
in classAbstractStructuredStatement
-
unpackElseIfBlock
private static Op04StructuredStatement unpackElseIfBlock(Op04StructuredStatement elseBlock)
-
convertEmptyToGoto
public StructuredStatement convertEmptyToGoto()
-
-