public class SwitchStmt extends BranchTargetStmt implements Cloneable
Modifier and Type | Field and Description |
---|---|
protected boolean |
canCompleteNormally_computed |
protected boolean |
canCompleteNormally_value |
protected boolean |
defaultCase_computed |
protected DefaultCase |
defaultCase_value |
protected boolean |
end_label_computed |
protected Stmt |
end_label_value |
protected Map |
isDAafter_Variable_values |
protected Map |
isDUafter_Variable_values |
protected Map |
targetOf_BreakStmt_values |
protected Map |
targetOf_ContinueStmt_values |
protected boolean |
typeInt_computed |
protected TypeDecl |
typeInt_value |
protected boolean |
typeLong_computed |
protected TypeDecl |
typeLong_value |
branches_computed, branches_value, escapedBranches_computed, escapedBranches_value, reachableBreak_computed, reachableBreak_value, reachableContinue_computed, reachableContinue_value, targetBranches_computed, targetBranches_value, targetBreaks_computed, targetBreaks_value, targetContinues_computed, targetContinues_value
localNum_computed, localNum_value
children, generatedWithCacheCycle, generatedWithCircularEnabled, generatedWithComponentCheck, in$Circle, is$Final, numChildren, parent, PRIMITIVE_PACKAGE_NAME, state
Constructor and Description |
---|
SwitchStmt() |
SwitchStmt(Expr p0,
Block p1) |
branches, branchTarget, collectBranches, collectFinally, escapedBranches, reachableBreak, reachableContinue, targetBranches, targetBreaks, targetContinues
addsIndentationLevel, continue_label, continueLabel, declaresVariable, Define_String_typeDeclIndent, enclosingBodyDecl, hostType, isDAbefore, isDUbefore, localNum, lookupMethod, lookupType, lookupType, lookupVariable, reachable, reportUnreachable
accessControl, addAttributes, addChild, asImmediate, asLocal, asLocal, asRValue, beginExceptionRange, checkDUeverywhere, checkEnum, checkUncheckedConversion, checkWarnings, clearLocations, cloneSubtree, collectEnclosingVariables, collectErrors, collectExceptions, collectTypesToHierarchy, collectTypesToSignatures, compilationUnit, Define_Annotation_lookupAnnotation, Define_ArrayList_exceptionRanges, Define_ASTNode_enclosingBlock, Define_BodyDecl_enclosingBodyDecl, Define_boolean_enclosedByExceptionHandler, Define_boolean_handlesException, Define_boolean_hasPackage, Define_boolean_inExplicitConstructorInvocation, Define_boolean_inExtendsOrImplements, Define_boolean_inhModifiedInScope, Define_boolean_insideLoop, Define_boolean_inStaticContext, Define_boolean_isAnonymous, Define_boolean_isAnonymousDecl, Define_boolean_isCatchParam, Define_boolean_isConstructorParameter, Define_boolean_isDest, Define_boolean_isExceptionHandlerParameter, Define_boolean_isExplicitGenericConstructorAccess, Define_boolean_isIncOrDec, Define_boolean_isLocalClass, Define_boolean_isMemberType, Define_boolean_isMethodParameter, Define_boolean_isNestedType, Define_boolean_isSource, Define_boolean_mayBeAbstract, Define_boolean_mayBeFinal, Define_boolean_mayBeNative, Define_boolean_mayBePrivate, Define_boolean_mayBeProtected, Define_boolean_mayBePublic, Define_boolean_mayBeStatic, Define_boolean_mayBeStrictfp, Define_boolean_mayBeSynchronized, Define_boolean_mayBeTransient, Define_boolean_mayBeVolatile, Define_boolean_mayUseAnnotationTarget, Define_boolean_reachableCatchClause, Define_boolean_resourcePreviouslyDeclared, Define_boolean_variableArityValid, Define_boolean_withinDeprecatedAnnotation, Define_boolean_withinSuppressWarnings, Define_CatchClause_catchClause, Define_ClassInstanceExpr_getClassInstanceExpr, Define_Collection_lookupConstructor, Define_Collection_lookupMethod, Define_Collection_lookupSuperConstructor, Define_Collection_TypeDecl__caughtExceptions, Define_CompilationUnit_compilationUnit, Define_ConstructorDecl_constructorDecl, Define_ConstructorDecl_unknownConstructor, Define_ElementValue_lookupElementTypeValue, Define_Expr_nestedScope, Define_GLBType_lookupGLBType, Define_int_localNum, Define_LabeledStmt_lookupLabel, Define_LUBType_lookupLUBType, Define_MethodDecl_unknownMethod, Define_NameType_nameType, Define_SimpleSet_allImportedTypes, Define_SimpleSet_lookupType, Define_SimpleSet_lookupVariable, Define_soot_jimple_Stmt_condition_false_label, Define_soot_jimple_Stmt_condition_true_label, Define_String_hostPackage, Define_String_methodHost, Define_String_packageName, Define_TypeDecl_assignConvertedType, Define_TypeDecl_componentType, Define_TypeDecl_declType, Define_TypeDecl_enclosingAnnotationDecl, Define_TypeDecl_enclosingInstance, Define_TypeDecl_enclosingType, Define_TypeDecl_expectedType, Define_TypeDecl_genericDecl, Define_TypeDecl_hostType, Define_TypeDecl_lookupType, Define_TypeDecl_lookupWildcardExtends, Define_TypeDecl_lookupWildcardSuper, Define_TypeDecl_returnType, Define_TypeDecl_superType, Define_TypeDecl_typeBoolean, Define_TypeDecl_typeByte, Define_TypeDecl_typeChar, Define_TypeDecl_typeCloneable, Define_TypeDecl_typeDouble, Define_TypeDecl_typeError, Define_TypeDecl_typeException, Define_TypeDecl_typeFloat, Define_TypeDecl_typeInt, Define_TypeDecl_typeLong, Define_TypeDecl_typeNull, Define_TypeDecl_typeNullPointerException, Define_TypeDecl_typeObject, Define_TypeDecl_typeRuntimeException, Define_TypeDecl_typeSerializable, Define_TypeDecl_typeShort, Define_TypeDecl_typeString, Define_TypeDecl_typeThrowable, Define_TypeDecl_typeVoid, Define_TypeDecl_typeWildcard, Define_TypeDecl_unknownType, Define_Variable_unknownField, Define_VariableScope_outerScope, definesLabel, definiteAssignment, dumpString, dumpTree, dumpTree, dumpTreeNoRewrite, dumpTreeNoRewrite, duringAnnotations, duringAnonymousClasses, duringBoundNames, duringDU, duringEnums, duringGenericTypeVariables, duringImplicitConstructor, duringLiterals, duringNameResolution, duringSyntacticClassification, duringVariableDeclarationTransformation, emitConstant, end, endExceptionRange, error, errorPrefix, exceptionHandling, extractIndent, extractSingleType, flushCaches, getChild, getChildNoTransform, getIndexOfChild, getNumChild, getNumChildNoTransform, getParent, in$Circle, in$Circle, indent, insertChild, is$Final, is$Final, isDescendantTo, isStringAdd, iterator, jimplify1phase1, jimplify1phase2, jimplify2, lineNumber, location, nameCheck, newLabel, options, putSimpleSetElement, reachedException, removeChild, removeInstanceMethods, removeInstanceVariables, replace, setChild, setEnd, setLocation, setParent, setStart, sourceFile, start, state, toString, transformEnumConstructors, unassignedEverywhere, usesTypeVariable, varChildIndex, varChildIndex, warning, warningPrefix, with
getColumn, getEnd, getId, getLine, getStart, makePosition
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
protected Map targetOf_ContinueStmt_values
protected Map targetOf_BreakStmt_values
protected Map isDAafter_Variable_values
protected Map isDUafter_Variable_values
protected boolean canCompleteNormally_computed
protected boolean canCompleteNormally_value
protected boolean defaultCase_computed
protected DefaultCase defaultCase_value
protected boolean end_label_computed
protected Stmt end_label_value
protected boolean typeInt_computed
protected TypeDecl typeInt_value
protected boolean typeLong_computed
protected TypeDecl typeLong_value
public void flushCache()
flushCache
in class BranchTargetStmt
public void flushCollectionCache()
flushCollectionCache
in class BranchTargetStmt
public SwitchStmt clone() throws CloneNotSupportedException
clone
in class BranchTargetStmt
CloneNotSupportedException
public SwitchStmt copy()
public SwitchStmt fullCopy()
public void toString(StringBuffer s)
public void transformation()
transformation
in class ASTNode<ASTNode>
public void init$Children()
init$Children
in class BranchTargetStmt
protected int numChildren()
numChildren
in class BranchTargetStmt
public boolean mayHaveRewrite()
mayHaveRewrite
in class BranchTargetStmt
public void setExpr(Expr node)
node
- The new node to replace the Expr child.public Expr getExpr()
public Expr getExprNoTransform()
This method does not invoke AST transformations.
public void setBlock(Block node)
node
- The new node to replace the Block child.public Block getBlock()
public Block getBlockNoTransform()
This method does not invoke AST transformations.
public void refined_Enums_SwitchStmt_typeCheck()
public void typeCheck()
Overrides the type checking of the switch statement's expression.
In JSR 334 a switch statement may use an expression of type String.
public boolean targetOf(ContinueStmt stmt)
targetOf
in interface BranchPropagation
targetOf
in class BranchTargetStmt
public boolean targetOf(BreakStmt stmt)
targetOf
in interface BranchPropagation
targetOf
in class BranchTargetStmt
public boolean assignedAfterLastStmt(Variable v)
public boolean unassignedAfterLastStmt(Variable v)
public boolean switchLabelEndsBlock()
public boolean lastStmtCanCompleteNormally()
public boolean noStmts()
public boolean noStmtsAfterLastLabel()
public boolean noDefaultLabel()
public boolean canCompleteNormally()
canCompleteNormally
in class Stmt
public DefaultCase defaultCase()
public Stmt end_label()
public Stmt break_label()
break_label
in class Stmt
public boolean modifiedInScope(Variable var)
modifiedInScope
in class Stmt
public TypeDecl typeInt()
public TypeDecl typeLong()
public boolean Define_boolean_isDAbefore(ASTNode caller, ASTNode child, Variable v)
Define_boolean_isDAbefore
in class ASTNode<ASTNode>
public boolean Define_boolean_isDUbefore(ASTNode caller, ASTNode child, Variable v)
Define_boolean_isDUbefore
in class ASTNode<ASTNode>
public boolean Define_boolean_insideSwitch(ASTNode caller, ASTNode child)
Define_boolean_insideSwitch
in class ASTNode<ASTNode>
public Case Define_Case_bind(ASTNode caller, ASTNode child, Case c)
Define_Case_bind
in class ASTNode<ASTNode>
public TypeDecl Define_TypeDecl_switchType(ASTNode caller, ASTNode child)
Define_TypeDecl_switchType
in class ASTNode<ASTNode>
public boolean Define_boolean_reachable(ASTNode caller, ASTNode child)
Define_boolean_reachable
in class ASTNode<ASTNode>
public boolean Define_boolean_reportUnreachable(ASTNode caller, ASTNode child)
Define_boolean_reportUnreachable
in class ASTNode<ASTNode>
public ASTNode rewriteTo()
rewriteTo
in class BranchTargetStmt
Copyright © 2020 Sable. All rights reserved.