Class StructuredCase
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredBlockStatement
org.benf.cfr.reader.bytecode.analysis.structured.statement.StructuredCase
- All Implemented Interfaces:
HasByteCodeLoc, Matcher<StructuredStatement>, StructuredStatement, Dumpable, TypeUsageCollectable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BlockIdentifierprivate final booleanprivate final InferredJavaTypeprivate List<Expression> -
Constructor Summary
ConstructorsConstructorDescriptionStructuredCase(BytecodeLoc loc, List<Expression> values, InferredJavaType inferredJavaTypeOfSwitch, Op04StructuredStatement body, BlockIdentifier blockIdentifier) StructuredCase(BytecodeLoc loc, List<Expression> values, InferredJavaType inferredJavaTypeOfSwitch, Op04StructuredStatement body, BlockIdentifier blockIdentifier, boolean enumSwitch) -
Method Summary
Modifier and TypeMethodDescriptionvoidcollectTypeUsages(TypeUsageCollector collector) private static StaticVariablegetEnumStatic(Expression expression) booleanbooleanvoidbooleanmatch(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) voidrewriteExpressions(ExpressionRewriter expressionRewriter) voidtraceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer) Methods inherited from class AbstractStructuredBlockStatement
getBody, isRecursivelyStructured, transformStructuredChildrenMethods inherited from class AbstractStructuredStatement
addLoc, alwaysDefines, canDefine, canFall, claimBlock, fallsNopToNext, findCreatedHere, getBreakableBlockOrNull, getContainer, getInline, getLoc, informBlockHeirachy, inlineable, isEffectivelyNOP, isScopeBlock, markCreator, setContainer, suggestName, supportsBreak, supportsContinueBreak, toString, transformStructuredChildrenInReverse
-
Field Details
-
values
-
blockIdentifier
-
inferredJavaTypeOfSwitch
-
enumSwitch
private final boolean enumSwitch
-
-
Constructor Details
-
StructuredCase
public StructuredCase(BytecodeLoc loc, List<Expression> values, InferredJavaType inferredJavaTypeOfSwitch, Op04StructuredStatement body, BlockIdentifier blockIdentifier) -
StructuredCase
public StructuredCase(BytecodeLoc loc, List<Expression> values, InferredJavaType inferredJavaTypeOfSwitch, Op04StructuredStatement body, BlockIdentifier blockIdentifier, boolean enumSwitch)
-
-
Method Details
-
getCombinedLoc
-
collectTypeUsages
- Specified by:
collectTypeUsagesin interfaceTypeUsageCollectable- Overrides:
collectTypeUsagesin classAbstractStructuredBlockStatement
-
getEnumStatic
-
dump
-
isProperlyStructured
public boolean isProperlyStructured()- Specified by:
isProperlyStructuredin interfaceStructuredStatement- Overrides:
isProperlyStructuredin classAbstractStructuredStatement
-
getValues
-
getBlockIdentifier
-
linearizeInto
-
traceLocalVariableScope
-
match
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) - Specified by:
matchin interfaceMatcher<StructuredStatement>- Overrides:
matchin classAbstractStructuredStatement
-
rewriteExpressions
-
isDefault
public boolean isDefault()
-