Packages

c

org.opalj.tac.fpcf.analyses.pointsto

TypeBasedPointsToAnalysis

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:

Source
TypeBasedPointsToAnalysis.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TypeBasedPointsToAnalysis
  2. TypeBasedAnalysis
  3. AbstractPointsToAnalysis
  4. ReachableMethodAnalysis
  5. PointsToAnalysisBase
  6. TypeConsumerAnalysis
  7. AbstractPointsToBasedAnalysis
  8. ContextualAnalysis
  9. FPCFAnalysis
  10. ProjectBasedAnalysis
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. type ContextType = cg.TypeIterator.ContextType
    Definition Classes
    TypeConsumerAnalysis
  2. type DependerType = AnyRef
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBaseAbstractPointsToBasedAnalysis
  3. type ElementType = ReferenceType
    Attributes
    protected[this]
    Definition Classes
    TypeBasedAnalysisAbstractPointsToBasedAnalysis
  4. type PointsToSet = TypeBasedPointsToSet
    Attributes
    protected[this]
    Definition Classes
    TypeBasedAnalysisAbstractPointsToBasedAnalysis
  5. type PropertyType = cg.TypeIterator.PropertyType
    Definition Classes
    TypeConsumerAnalysis
  6. type State = PointsToAnalysisState[ElementType, PointsToSet, ContextType]
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBaseAbstractPointsToBasedAnalysis

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def analyze(declaredMethod: DeclaredMethod): PropertyComputationResult
    Definition Classes
    ReachableMethodAnalysis
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. final def ch: ClassHierarchy
    Definition Classes
    ProjectBasedAnalysis
  7. implicit final def classHierarchy: ClassHierarchy
    Definition Classes
    ProjectBasedAnalysis
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  9. def continuationForCallees(oldCalleeEOptP: EOptionP[DeclaredMethod, Callees], state: State)(eps: SomeEPS): ProperPropertyComputationResult
    Definition Classes
    AbstractPointsToAnalysis
  10. 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
  11. 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
  12. 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
  13. 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
  14. def continuationForShared(e: Entity, dependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)], state: State)(eps: SomeEPS): ProperPropertyComputationResult
    Attributes
    protected[this]
    Definition Classes
    AbstractPointsToAnalysisPointsToAnalysisBase
  15. def continuationForTAC(declaredMethod: DeclaredMethod)(someEPS: SomeEPS): ProperPropertyComputationResult
    Attributes
    protected
    Definition Classes
    ReachableMethodAnalysis
  16. 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()
  17. def createPointsToSet(pc: Int, callContext: ContextType, allocatedType: ReferenceType, isConstant: Boolean, isEmptyArray: Boolean = false): TypeBasedPointsToSet
    Attributes
    protected[this]
    Definition Classes
    TypeBasedAnalysisAbstractPointsToBasedAnalysis
  18. def createResults(implicit state: State): ArrayBuffer[ProperPropertyComputationResult]
    Attributes
    protected[this]
    Definition Classes
    AbstractPointsToAnalysisPointsToAnalysisBase
  19. def currentPointsTo(depender: Entity, dependee: Entity, typeFilter: (ReferenceType) => Boolean)(implicit state: State): PointsToSet
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
    Annotations
    @inline()
  20. def currentPointsToOfDefSite(depender: DependerType, dependeeDefSite: Int, typeFilter: (ReferenceType) => Boolean = PointsToSetLike.noFilter)(implicit state: State): PointsToSet
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
    Annotations
    @inline()
  21. def currentPointsToOfDefSites(depender: DependerType, defSites: IntTrieSet, typeFilter: (ReferenceType) => Boolean = PointsToSetLike.noFilter)(implicit state: State): Iterator[PointsToSet]
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
    Annotations
    @inline()
  22. implicit val declaredMethods: DeclaredMethods
    Attributes
    protected
    Definition Classes
    ReachableMethodAnalysis
  23. implicit val definitionSites: DefinitionSites
    Attributes
    protected[this]
    Definition Classes
    AbstractPointsToBasedAnalysis
  24. def emptyPointsToSet: TypeBasedPointsToSet
    Attributes
    protected[this]
    Definition Classes
    TypeBasedAnalysisAbstractPointsToBasedAnalysis
  25. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  26. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  27. implicit val formalParameters: VirtualFormalParameters
    Attributes
    protected[this]
    Definition Classes
    AbstractPointsToBasedAnalysis
  28. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  29. def getDefSite(pc: Int)(implicit state: State): Entity
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
    Annotations
    @inline()
  30. def getFormalParameter(index: Int, formalParameters: ArraySeq[VirtualFormalParameter], context: Context): Entity
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
    Annotations
    @inline()
  31. def getTypeIdOf(element: ReferenceType): Int
    Attributes
    protected[this]
    Definition Classes
    TypeBasedAnalysisAbstractPointsToBasedAnalysis
    Annotations
    @inline()
  32. def getTypeOf(element: ReferenceType): ReferenceType
    Attributes
    protected[this]
    Definition Classes
    TypeBasedAnalysisAbstractPointsToBasedAnalysis
    Annotations
    @inline()
  33. def handleArrayLoad(arrayType: ArrayType, pc: Int, arrayDefSites: IntTrieSet, checkForCast: Boolean = true)(implicit state: State): Unit
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
  34. def handleArrayStore(arrayType: ArrayType, arrayDefSites: IntTrieSet, rhsDefSites: IntTrieSet)(implicit state: State): Unit
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
  35. def handleCallParameter(paramDefSites: IntTrieSet, paramIndex: Int, target: Context)(implicit state: State): Unit
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
  36. def handleCallReceiver(receiverDefSites: IntTrieSet, target: Context, isNonVirtualCall: Boolean, indirectConstructorPCAndType: Option[(Int, ReferenceType)] = None)(implicit state: State): Unit
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
  37. def handleGetField(fieldOpt: Option[Field], pc: Int, objRefDefSites: IntTrieSet, checkForCast: Boolean = true)(implicit state: State): Unit
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
  38. def handleGetStatic(field: Field, pc: Int, checkForCast: Boolean = true)(implicit state: State): Unit
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
  39. def handlePutField(fieldOpt: Option[Field], objRefDefSites: IntTrieSet, rhsDefSites: IntTrieSet)(implicit state: State): Unit
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
  40. def handlePutStatic(field: Field, rhsDefSites: IntTrieSet)(implicit state: State): Unit
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
  41. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  42. def isEmptyArray(element: ReferenceType): Boolean
    Attributes
    protected[this]
    Definition Classes
    TypeBasedAnalysisAbstractPointsToBasedAnalysis
    Annotations
    @inline()
  43. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  44. implicit final def logContext: LogContext
    Definition Classes
    ProjectBasedAnalysis
  45. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  46. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  47. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  48. implicit final def p: SomeProject
    Definition Classes
    ProjectBasedAnalysis
  49. val pointsToPropertyKey: PropertyKey[TypeBasedPointsToSet]
    Attributes
    protected[this]
    Definition Classes
    TypeBasedAnalysisAbstractPointsToBasedAnalysis
  50. def pointsToUB(eOptP: EOptionP[Entity, PointsToSet]): PointsToSet
    Attributes
    protected[this]
    Definition Classes
    AbstractPointsToBasedAnalysis
    Annotations
    @inline()
  51. def processMethod(callContext: ContextType, tacEP: EPS[Method, properties.TACAI]): ProperPropertyComputationResult
  52. def processMethodWithoutBody(eOptP: EOptionP[DeclaredMethod, Callers]): PropertyComputationResult
    Attributes
    protected
    Definition Classes
    ReachableMethodAnalysis
  53. val processesMethodsWithoutBody: Boolean
    Attributes
    protected
    Definition Classes
    ReachableMethodAnalysis
  54. final val project: SomeProject
  55. implicit final val propertyStore: PropertyStore
    Definition Classes
    FPCFAnalysis
  56. final def ps: PropertyStore
    Definition Classes
    FPCFAnalysis
  57. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  58. def toEntity(defSite: Int)(implicit state: State): Entity
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
    Annotations
    @inline()
  59. def toString(): String
    Definition Classes
    AnyRef → Any
  60. implicit val typeIterator: TypeIterator
    Definition Classes
    TypeConsumerAnalysis
  61. def updatedDependees(eps: SomeEPS, oldDependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]): Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
    Annotations
    @inline()
  62. def updatedPointsToSet(oldPointsToSet: PointsToSet, newDependeePointsToSet: PointsToSet, dependee: SomeEPS, oldDependees: Map[SomeEPK, (SomeEOptionP, (ReferenceType) => Boolean)]): PointsToSet
    Attributes
    protected[this]
    Definition Classes
    PointsToAnalysisBase
    Annotations
    @inline()
  63. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  64. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  65. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from TypeBasedAnalysis

Inherited from PointsToAnalysisBase

Inherited from TypeConsumerAnalysis

Inherited from ContextualAnalysis

Inherited from FPCFAnalysis

Inherited from ProjectBasedAnalysis

Inherited from AnyRef

Inherited from Any

Ungrouped