Class StructuredFinally
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
-
- org.benf.cfr.reader.bytecode.analysis.structured.statement.StructuredFinally
-
- All Implemented Interfaces:
HasByteCodeLoc
,Matcher<StructuredStatement>
,StructuredStatement
,Dumpable
,TypeUsageCollectable
public class StructuredFinally extends AbstractStructuredStatement
-
-
Field Summary
Fields Modifier and Type Field Description private Op04StructuredStatement
catchBlock
-
Constructor Summary
Constructors Constructor Description StructuredFinally(Op04StructuredStatement catchBlock)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
collectTypeUsages(TypeUsageCollector collector)
Dumper
dump(Dumper dumper)
boolean
fallsNopToNext()
Op04StructuredStatement
getCatchBlock()
BytecodeLoc
getCombinedLoc()
boolean
isProperlyStructured()
boolean
isRecursivelyStructured()
boolean
isScopeBlock()
void
linearizeInto(java.util.List<StructuredStatement> out)
boolean
match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
void
rewriteExpressions(ExpressionRewriter expressionRewriter)
void
traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
void
transformStructuredChildren(StructuredStatementTransformer transformer, StructuredScope scope)
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
addLoc, alwaysDefines, canDefine, canFall, claimBlock, findCreatedHere, getBreakableBlockOrNull, getContainer, getInline, getLoc, informBlockHeirachy, inlineable, isEffectivelyNOP, markCreator, setContainer, suggestName, supportsBreak, supportsContinueBreak, toString, transformStructuredChildrenInReverse
-
-
-
-
Field Detail
-
catchBlock
private final Op04StructuredStatement catchBlock
-
-
Constructor Detail
-
StructuredFinally
public StructuredFinally(Op04StructuredStatement catchBlock)
-
-
Method Detail
-
getCombinedLoc
public BytecodeLoc getCombinedLoc()
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
-
isProperlyStructured
public boolean isProperlyStructured()
- Specified by:
isProperlyStructured
in interfaceStructuredStatement
- Overrides:
isProperlyStructured
in classAbstractStructuredStatement
-
fallsNopToNext
public boolean fallsNopToNext()
- Specified by:
fallsNopToNext
in interfaceStructuredStatement
- Overrides:
fallsNopToNext
in classAbstractStructuredStatement
-
isScopeBlock
public boolean isScopeBlock()
- Specified by:
isScopeBlock
in interfaceStructuredStatement
- Overrides:
isScopeBlock
in classAbstractStructuredStatement
-
transformStructuredChildren
public void transformStructuredChildren(StructuredStatementTransformer transformer, StructuredScope scope)
-
linearizeInto
public void linearizeInto(java.util.List<StructuredStatement> out)
-
getCatchBlock
public Op04StructuredStatement getCatchBlock()
-
isRecursivelyStructured
public boolean isRecursivelyStructured()
- Specified by:
isRecursivelyStructured
in interfaceStructuredStatement
- Overrides:
isRecursivelyStructured
in classAbstractStructuredStatement
-
match
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
- Specified by:
match
in interfaceMatcher<StructuredStatement>
- Overrides:
match
in classAbstractStructuredStatement
-
traceLocalVariableScope
public void traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
-
rewriteExpressions
public void rewriteExpressions(ExpressionRewriter expressionRewriter)
-
-