class TypeBasedPointsToAnalysis extends AbstractPointsToAnalysis with TypeBasedAnalysis
An andersen-style points-to analysis, i.e. points-to sets are modeled as subsets. It uses TypeBasedPointsToSet as points-to sets, i.e. does not differentiate allocation sites for the same types. The analysis is field-based, array-based and context-insensitive. As the analysis is build on top of the org.opalj.tac.TACAI, it is (implicitly) flow-sensitive (which is not the case for pure andersen-style).
Points-to sets may be attached to the following entities:
- org.opalj.tac.common.DefinitionSite for local variables.
- org.opalj.br.Field for fields (either static of instance)
- org.opalj.br.DeclaredMethod for the points-to set of the return values.
- org.opalj.br.analyses.VirtualFormalParameter for the parameters of a method.
- org.opalj.br.ObjectType for the element type of an array.
- Alphabetic
- By Inheritance
- TypeBasedPointsToAnalysis
- TypeBasedAnalysis
- AbstractPointsToAnalysis
- ReachableMethodAnalysis
- PointsToAnalysisBase
- TypeConsumerAnalysis
- AbstractPointsToBasedAnalysis
- ContextualAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type ContextType = cg.TypeIterator.ContextType
- Definition Classes
- TypeConsumerAnalysis
- type DependerType = AnyRef
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase → AbstractPointsToBasedAnalysis
- type ElementType = ReferenceType
- Attributes
- protected[this]
- Definition Classes
- TypeBasedAnalysis → AbstractPointsToBasedAnalysis
- type PointsToSet = TypeBasedPointsToSet
- Attributes
- protected[this]
- Definition Classes
- TypeBasedAnalysis → AbstractPointsToBasedAnalysis
- type PropertyType = cg.TypeIterator.PropertyType
- Definition Classes
- TypeConsumerAnalysis
- type State = PointsToAnalysisState[ElementType, PointsToSet, ContextType]
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase → AbstractPointsToBasedAnalysis
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def analyze(declaredMethod: DeclaredMethod): PropertyComputationResult
- Definition Classes
- ReachableMethodAnalysis
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def ch: ClassHierarchy
- Definition Classes
- ProjectBasedAnalysis
- implicit final def classHierarchy: ClassHierarchy
- Definition Classes
- ProjectBasedAnalysis
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- def continuationForCallees(oldCalleeEOptP: EOptionP[DeclaredMethod, Callees], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Definition Classes
- AbstractPointsToAnalysis
- def continuationForNewAllocationSitesAtArrayLoad(defSiteObject: Entity, arrayType: ArrayType, filter: (ReferenceType) => Boolean, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def continuationForNewAllocationSitesAtArrayStore(knownPointsTo: PointsToSet, rhsDefSitesEPS: Map[SomeEPK, SomeEOptionP], arrayType: ArrayType, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def continuationForNewAllocationSitesAtGetField(defSiteObject: Entity, fieldOpt: Option[Field], filter: (ReferenceType) => Boolean, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def continuationForNewAllocationSitesAtPutField(knownPointsTo: PointsToSet, rhsDefSitesEPS: Map[SomeEPK, SomeEOptionP], fieldOpt: Option[Field], dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def continuationForShared(e: Entity, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToAnalysis → PointsToAnalysisBase
- def continuationForTAC(declaredMethod: DeclaredMethod)(someEPS: SomeEPS): ProperPropertyComputationResult
- Attributes
- protected
- Definition Classes
- ReachableMethodAnalysis
- def createPartialResults(e: Entity, newPointsToSet: PointsToSet, newDependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], updatePointsTo: (PointsToSet) => PointsToSet, isUpdate: Boolean = false)(implicit state: State): Seq[ProperPropertyComputationResult]
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def createPointsToSet(pc: Int, callContext: ContextType, allocatedType: ReferenceType, isConstant: Boolean, isEmptyArray: Boolean = false): TypeBasedPointsToSet
- Attributes
- protected[this]
- Definition Classes
- TypeBasedAnalysis → AbstractPointsToBasedAnalysis
- def createResults(implicit state: State): ArrayBuffer[ProperPropertyComputationResult]
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToAnalysis → PointsToAnalysisBase
- def currentPointsTo(depender: Entity, dependee: Entity, typeFilter: (ReferenceType) => Boolean)(implicit state: State): PointsToSet
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def currentPointsToOfDefSite(depender: DependerType, dependeeDefSite: Int, typeFilter: (ReferenceType) => Boolean = PointsToSetLike.noFilter)(implicit state: State): PointsToSet
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def currentPointsToOfDefSites(depender: DependerType, defSites: IntTrieSet, typeFilter: (ReferenceType) => Boolean = PointsToSetLike.noFilter)(implicit state: State): Iterator[PointsToSet]
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- implicit val declaredMethods: DeclaredMethods
- Attributes
- protected
- Definition Classes
- ReachableMethodAnalysis
- implicit val definitionSites: DefinitionSites
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAnalysis
- def emptyPointsToSet: TypeBasedPointsToSet
- Attributes
- protected[this]
- Definition Classes
- TypeBasedAnalysis → AbstractPointsToBasedAnalysis
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- implicit val formalParameters: VirtualFormalParameters
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAnalysis
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def getDefSite(pc: Int)(implicit state: State): Entity
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def getFormalParameter(index: Int, formalParameters: ArraySeq[VirtualFormalParameter], context: Context): Entity
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def getTypeIdOf(element: ReferenceType): Int
- Attributes
- protected[this]
- Definition Classes
- TypeBasedAnalysis → AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- def getTypeOf(element: ReferenceType): ReferenceType
- Attributes
- protected[this]
- Definition Classes
- TypeBasedAnalysis → AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- def handleArrayLoad(arrayType: ArrayType, pc: Int, arrayDefSites: IntTrieSet, checkForCast: Boolean = true)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleArrayStore(arrayType: ArrayType, arrayDefSites: IntTrieSet, rhsDefSites: IntTrieSet)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleCallParameter(paramDefSites: IntTrieSet, paramIndex: Int, target: Context)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleCallReceiver(receiverDefSites: IntTrieSet, target: Context, isNonVirtualCall: Boolean, indirectConstructorPCAndType: Option[(Int, ReferenceType)] = None)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleGetField(fieldOpt: Option[Field], pc: Int, objRefDefSites: IntTrieSet, checkForCast: Boolean = true)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handleGetStatic(field: Field, pc: Int, checkForCast: Boolean = true)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handlePutField(fieldOpt: Option[Field], objRefDefSites: IntTrieSet, rhsDefSites: IntTrieSet)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def handlePutStatic(field: Field, rhsDefSites: IntTrieSet)(implicit state: State): Unit
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def isEmptyArray(element: ReferenceType): Boolean
- Attributes
- protected[this]
- Definition Classes
- TypeBasedAnalysis → AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- implicit final def logContext: LogContext
- Definition Classes
- ProjectBasedAnalysis
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- implicit final def p: SomeProject
- Definition Classes
- ProjectBasedAnalysis
- val pointsToPropertyKey: PropertyKey[TypeBasedPointsToSet]
- Attributes
- protected[this]
- Definition Classes
- TypeBasedAnalysis → AbstractPointsToBasedAnalysis
- def pointsToUB(eOptP: EOptionP[Entity, PointsToSet]): PointsToSet
- Attributes
- protected[this]
- Definition Classes
- AbstractPointsToBasedAnalysis
- Annotations
- @inline()
- def processMethod(callContext: ContextType, tacEP: EPS[Method, properties.TACAI]): ProperPropertyComputationResult
- Definition Classes
- AbstractPointsToAnalysis → ReachableMethodAnalysis
- def processMethodWithoutBody(eOptP: EOptionP[DeclaredMethod, Callers]): PropertyComputationResult
- Attributes
- protected
- Definition Classes
- ReachableMethodAnalysis
- val processesMethodsWithoutBody: Boolean
- Attributes
- protected
- Definition Classes
- ReachableMethodAnalysis
- final val project: SomeProject
- Definition Classes
- TypeBasedPointsToAnalysis → ProjectBasedAnalysis
- implicit final val propertyStore: PropertyStore
- Definition Classes
- FPCFAnalysis
- final def ps: PropertyStore
- Definition Classes
- FPCFAnalysis
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toEntity(defSite: Int)(implicit state: State): Entity
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def toString(): String
- Definition Classes
- AnyRef → Any
- implicit val typeIterator: TypeIterator
- Definition Classes
- TypeConsumerAnalysis
- def updatedDependees(eps: SomeEPS, oldDependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]): Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- def updatedPointsToSet(oldPointsToSet: PointsToSet, newDependeePointsToSet: PointsToSet, dependee: SomeEPS, oldDependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]): PointsToSet
- Attributes
- protected[this]
- Definition Classes
- PointsToAnalysisBase
- Annotations
- @inline()
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated