Class StructuredTry
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
org.benf.cfr.reader.bytecode.analysis.structured.statement.StructuredTry
- All Implemented Interfaces:
HasByteCodeLoc, Matcher<StructuredStatement>, StructuredStatement, Dumpable, TypeUsageCollectable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List<Op04StructuredStatement> private Op04StructuredStatementprivate List<Op04StructuredStatement> private Op04StructuredStatementprivate final BlockIdentifier -
Constructor Summary
ConstructorsConstructorDescriptionStructuredTry(Op04StructuredStatement tryBlock, BlockIdentifier tryBlockIdentifier) -
Method Summary
Modifier and TypeMethodDescription(package private) voidaddCatch(Op04StructuredStatement catchStatement) voidaddResources(List<Op04StructuredStatement> resources) voidvoidcollectTypeUsages(TypeUsageCollector collector) booleanbooleanbooleanprivate booleanprivate booleanbooleanbooleanbooleanvoidbooleanmatch(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) voidrewriteExpressions(ExpressionRewriter expressionRewriter) voidsetFinally(Op04StructuredStatement finallyBlock) voidsetTryBlock(Op04StructuredStatement tryBlock) voidtraceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer) voidtransformStructuredChildren(StructuredStatementTransformer transformer, StructuredScope scope) Methods inherited from class AbstractStructuredStatement
addLoc, alwaysDefines, canDefine, canFall, claimBlock, findCreatedHere, getBreakableBlockOrNull, getContainer, getLoc, informBlockHeirachy, isEffectivelyNOP, markCreator, setContainer, suggestName, supportsBreak, supportsContinueBreak, toString, transformStructuredChildrenInReverse
-
Field Details
-
tryBlock
-
catchBlocks
-
finallyBlock
-
tryBlockIdentifier
-
resourceBlock
-
-
Constructor Details
-
StructuredTry
-
-
Method Details
-
getCombinedLoc
-
addResources
-
getResources
-
hasResources
public boolean hasResources() -
getTryBlock
-
getCatchBlocks
-
clearCatchBlocks
public void clearCatchBlocks() -
dump
-
collectTypeUsages
-
isProperlyStructured
public boolean isProperlyStructured()- Specified by:
isProperlyStructuredin interfaceStructuredStatement- Overrides:
isProperlyStructuredin classAbstractStructuredStatement
-
fallsNopToNext
public boolean fallsNopToNext()- Specified by:
fallsNopToNextin interfaceStructuredStatement- Overrides:
fallsNopToNextin classAbstractStructuredStatement
-
addCatch
-
setFinally
-
isScopeBlock
public boolean isScopeBlock()- Specified by:
isScopeBlockin interfaceStructuredStatement- Overrides:
isScopeBlockin classAbstractStructuredStatement
-
transformStructuredChildren
public void transformStructuredChildren(StructuredStatementTransformer transformer, StructuredScope scope) -
linearizeInto
-
traceLocalVariableScope
-
isRecursivelyStructured
public boolean isRecursivelyStructured()- Specified by:
isRecursivelyStructuredin interfaceStructuredStatement- Overrides:
isRecursivelyStructuredin classAbstractStructuredStatement
-
getFinallyBlock
-
match
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) - Specified by:
matchin interfaceMatcher<StructuredStatement>- Overrides:
matchin classAbstractStructuredStatement
-
rewriteExpressions
-
isPointlessTry
private boolean isPointlessTry() -
isJustTryCatchThrow
private boolean isJustTryCatchThrow() -
inlineable
public boolean inlineable()- Specified by:
inlineablein interfaceStructuredStatement- Overrides:
inlineablein classAbstractStructuredStatement
-
getTryBlockIdentifier
-
getInline
- Specified by:
getInlinein interfaceStructuredStatement- Overrides:
getInlinein classAbstractStructuredStatement
-
setTryBlock
-