Package soot.JastAddJ
Class Expr
- java.lang.Object
-
- beaver.Symbol
-
- soot.JastAddJ.ASTNode<ASTNode>
-
- soot.JastAddJ.Expr
-
- Direct Known Subclasses:
Access,ArrayInit,AssignExpr,Binary,CastExpr,ConditionalExpr,InstanceOfExpr,PrimaryExpr,Unary
public abstract class Expr extends ASTNode<ASTNode> implements Cloneable
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanfalse_label_computedprotected Stmtfalse_label_valueprotected booleantrue_label_computedprotected Stmttrue_label_value-
Fields inherited from class soot.JastAddJ.ASTNode
children, generatedWithCacheCycle, generatedWithCircularEnabled, generatedWithComponentCheck, in$Circle, is$Final, numChildren, parent, PRIMITIVE_PACKAGE_NAME, state
-
-
Constructor Summary
Constructors Constructor Description Expr()
-
Method Summary
-
Methods inherited from class soot.JastAddJ.ASTNode
accessControl, addAttributes, addChild, addsIndentationLevel, asImmediate, asLocal, asLocal, asRValue, beginExceptionRange, branchTarget, checkDUeverywhere, checkEnum, checkUncheckedConversion, checkWarnings, clearLocations, cloneSubtree, collectBranches, collectEnclosingVariables, collectErrors, collectExceptions, collectFinally, collectTypesToSignatures, compilationUnit, copy, 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_insideSwitch, Define_boolean_inStaticContext, Define_boolean_isAnonymous, Define_boolean_isAnonymousDecl, Define_boolean_isCatchParam, Define_boolean_isConstructorParameter, Define_boolean_isDAbefore, Define_boolean_isDest, Define_boolean_isDUbefore, 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_reachable, Define_boolean_reachableCatchClause, Define_boolean_reportUnreachable, Define_boolean_resourcePreviouslyDeclared, Define_boolean_variableArityValid, Define_boolean_withinDeprecatedAnnotation, Define_boolean_withinSuppressWarnings, Define_Case_bind, 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_String_typeDeclIndent, 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_switchType, 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, fullCopy, getChild, getChildNoTransform, getIndexOfChild, getNumChild, getNumChildNoTransform, getParent, in$Circle, in$Circle, indent, insertChild, is$Final, is$Final, isDescendantTo, isStringAdd, iterator, jimplify1phase1, jimplify1phase2, jimplify2, jimplify2, lineNumber, location, nameCheck, newLabel, options, putSimpleSetElement, reachedException, removeChild, removeInstanceMethods, removeInstanceVariables, replace, setChild, setEnd, setLocation, setParent, setStart, sourceFile, start, state, toString, toString, transformation, transformEnumConstructors, typeCheck, unassignedEverywhere, usesTypeVariable, varChildIndex, varChildIndex, warning, warningPrefix, with
-
Methods inherited from class beaver.Symbol
getColumn, getEnd, getId, getLine, getStart, makePosition
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Method Detail
-
flushCache
public void flushCache()
- Overrides:
flushCachein classASTNode<ASTNode>
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCachein classASTNode<ASTNode>
-
clone
public Expr clone() throws CloneNotSupportedException
- Overrides:
clonein classASTNode<ASTNode>- Throws:
CloneNotSupportedException
-
keepAccessibleFields
public SimpleSet keepAccessibleFields(SimpleSet oldSet)
Remove fields that are not accessible when using this Expr as qualifier- Returns:
- a set containing the accessible fields
-
mayAccess
public boolean mayAccess(FieldDeclaration f)
- Returns:
- true if the expression may access the given field
- See Also:
- "JLS $6.6.2.1"
-
chooseConstructor
protected SimpleSet chooseConstructor(Collection constructors, List argList)
-
mostSpecific
protected static SimpleSet mostSpecific(SimpleSet maxSpecific, ConstructorDecl decl)
-
refined_BooleanExpressions_Expr_emitEvalBranch
public void refined_BooleanExpressions_Expr_emitEvalBranch(Body b)
-
collectTypesToHierarchy
public void collectTypesToHierarchy(Collection<Type> set)
- Overrides:
collectTypesToHierarchyin classASTNode<ASTNode>
-
addDependencyIfNeeded
protected void addDependencyIfNeeded(Collection<Type> set, TypeDecl type)
-
init$Children
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.- Overrides:
init$Childrenin classASTNode<ASTNode>
-
numChildren
protected int numChildren()
- Overrides:
numChildrenin classASTNode<ASTNode>
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewritein classASTNode<ASTNode>
-
emitEvalBranch
public void emitEvalBranch(Body b)
-
type
public abstract TypeDecl type()
-
constant
public Constant constant()
-
isPositive
public boolean isPositive()
-
representableIn
public boolean representableIn(TypeDecl t)
-
isConstant
public boolean isConstant()
-
isTrue
public boolean isTrue()
-
isFalse
public boolean isFalse()
-
varDecl
public Variable varDecl()
-
isDAafterFalse
public boolean isDAafterFalse(Variable v)
-
isDAafterTrue
public boolean isDAafterTrue(Variable v)
-
isDAafter
public boolean isDAafter(Variable v)
-
isDUafterFalse
public boolean isDUafterFalse(Variable v)
-
isDUafterTrue
public boolean isDUafterTrue(Variable v)
-
isDUafter
public boolean isDUafter(Variable v)
-
mostSpecificConstructor
public SimpleSet mostSpecificConstructor(Collection constructors)
-
applicableAndAccessible
public boolean applicableAndAccessible(ConstructorDecl decl)
-
hasQualifiedPackage
public boolean hasQualifiedPackage(String packageName)
-
packageName
public String packageName()
-
typeName
public String typeName()
-
isTypeAccess
public boolean isTypeAccess()
-
isMethodAccess
public boolean isMethodAccess()
-
isFieldAccess
public boolean isFieldAccess()
-
isSuperAccess
public boolean isSuperAccess()
-
isThisAccess
public boolean isThisAccess()
-
isPackageAccess
public boolean isPackageAccess()
-
isArrayAccess
public boolean isArrayAccess()
-
isClassAccess
public boolean isClassAccess()
-
isSuperConstructorAccess
public boolean isSuperConstructorAccess()
-
isLeftChildOfDot
public boolean isLeftChildOfDot()
-
isRightChildOfDot
public boolean isRightChildOfDot()
-
parentDot
public AbstractDot parentDot()
-
hasParentDot
public boolean hasParentDot()
-
nextAccess
public Access nextAccess()
-
hasNextAccess
public boolean hasNextAccess()
-
enclosingStmt
public Stmt enclosingStmt()
-
isVariable
public boolean isVariable()
-
isUnknown
public boolean isUnknown()
-
staticContextQualifier
public boolean staticContextQualifier()
-
isEnumConstant
public boolean isEnumConstant()
-
false_label
public Stmt false_label()
-
true_label
public Stmt true_label()
-
canBeTrue
public boolean canBeTrue()
-
canBeFalse
public boolean canBeFalse()
-
throwTypes
public Collection<TypeDecl> throwTypes()
-
modifiedInScope
public boolean modifiedInScope(Variable var)
-
isVariable
public boolean isVariable(Variable var)
-
isDest
public boolean isDest()
-
isSource
public boolean isSource()
-
isIncOrDec
public boolean isIncOrDec()
-
isDAbefore
public boolean isDAbefore(Variable v)
-
isDUbefore
public boolean isDUbefore(Variable v)
-
lookupMethod
public Collection lookupMethod(String name)
-
typeBoolean
public TypeDecl typeBoolean()
-
typeByte
public TypeDecl typeByte()
-
typeShort
public TypeDecl typeShort()
-
typeChar
public TypeDecl typeChar()
-
typeInt
public TypeDecl typeInt()
-
typeLong
public TypeDecl typeLong()
-
typeFloat
public TypeDecl typeFloat()
-
typeDouble
public TypeDecl typeDouble()
-
typeString
public TypeDecl typeString()
-
typeVoid
public TypeDecl typeVoid()
-
typeNull
public TypeDecl typeNull()
-
unknownType
public TypeDecl unknownType()
-
hasPackage
public boolean hasPackage(String packageName)
-
nameType
public NameType nameType()
-
enclosingBodyDecl
public BodyDecl enclosingBodyDecl()
-
hostPackage
public String hostPackage()
-
hostType
public TypeDecl hostType()
-
methodHost
public String methodHost()
-
inStaticContext
public boolean inStaticContext()
-
assignConvertedType
public TypeDecl assignConvertedType()
-
inExtendsOrImplements
public boolean inExtendsOrImplements()
-
condition_false_label
public Stmt condition_false_label()
-
condition_true_label
public Stmt condition_true_label()
-
-