Packages

c

org.opalj.tac.fpcf.analyses.escape

InterProceduralEscapeAnalysis

class InterProceduralEscapeAnalysis extends DefaultEscapeAnalysis with AbstractInterProceduralEscapeAnalysis with ConstructorSensitiveEscapeAnalysis with ConfigurationBasedConstructorEscapeAnalysis with SimpleFieldAwareEscapeAnalysis with ExceptionAwareEscapeAnalysis

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InterProceduralEscapeAnalysis
  2. ExceptionAwareEscapeAnalysis
  3. SimpleFieldAwareEscapeAnalysis
  4. ConfigurationBasedConstructorEscapeAnalysis
  5. ConstructorSensitiveEscapeAnalysis
  6. AbstractInterProceduralEscapeAnalysis
  7. DefaultEscapeAnalysis
  8. AbstractEscapeAnalysis
  9. FPCFAnalysis
  10. ProjectBasedAnalysis
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

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. def analyzeTAC()(implicit context: AnalysisContext, state: AnalysisState): ProperPropertyComputationResult

    Analyzes each TAC statement of the given method.

    Analyzes each TAC statement of the given method. This methods assumes that there is at least an intermediate result for the TAC present.

    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def c(someEPS: SomeEPS)(implicit context: AnalysisContext, state: AnalysisState): ProperPropertyComputationResult

    A continuation function, that handles the updates of property values for entity other.

    A continuation function, that handles the updates of property values for entity other.

    Attributes
    protected[this]
    Definition Classes
    ConstructorSensitiveEscapeAnalysisAbstractEscapeAnalysis
  7. final def ch: ClassHierarchy
    Definition Classes
    ProjectBasedAnalysis
  8. implicit final def classHierarchy: ClassHierarchy
    Definition Classes
    ProjectBasedAnalysis
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  10. def createContext(entity: (Context, Entity), defSitePC: ValueOrigin, targetMethod: Method): InterProceduralEscapeAnalysisContext
  11. def createState: InterProceduralEscapeAnalysisState
  12. implicit val declaredMethods: DeclaredMethods
    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  13. def determineEscape(e: Entity): ProperPropertyComputationResult

    Extracts information from the given entity and should call doDetermineEscape afterwards.

    Extracts information from the given entity and should call doDetermineEscape afterwards. For some entities a result might be returned immediately.

    Definition Classes
    AbstractEscapeAnalysis
  14. def determineEscapeOfDS(dsl: (Context, DefinitionSiteLike)): ProperPropertyComputationResult
    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  15. def determineEscapeOfFP(fp: (Context, VirtualFormalParameter)): ProperPropertyComputationResult
  16. def doDetermineEscape(implicit context: AnalysisContext, state: AnalysisState): ProperPropertyComputationResult

    Retrieves the TAC and starts the analysis, if there is already a (intermediate) version of it.

    Retrieves the TAC and starts the analysis, if there is already a (intermediate) version of it. Otherwise, continue when a TAC is available.

    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  17. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  20. def handleArrayStore(arrayStore: ArrayStore[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    Same as handlePutField.

    Same as handlePutField.

    Attributes
    protected[this]
    Definition Classes
    SimpleFieldAwareEscapeAnalysisAbstractEscapeAnalysis
  21. def handleAssignment(assignment: Assignment[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    org.opalj.tac.Assignments can contain function calls, so they have to handle them.

    org.opalj.tac.Assignments can contain function calls, so they have to handle them.

    Attributes
    protected[this]
    Definition Classes
    DefaultEscapeAnalysisAbstractEscapeAnalysis
  22. def handleExprStmt(exprStmt: ExprStmt[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    org.opalj.tac.ExprStmt can contain function calls, so they have to handle them.

    org.opalj.tac.ExprStmt can contain function calls, so they have to handle them.

    Attributes
    protected[this]
    Definition Classes
    DefaultEscapeAnalysisAbstractEscapeAnalysis
  23. def handleExpression(expr: Expr[V], hasAssignment: Boolean)(implicit context: AnalysisContext, state: AnalysisState): Unit

    Currently, the only expressions that can lead to an escape are the different kinds of function calls.

    Currently, the only expressions that can lead to an escape are the different kinds of function calls. So this method delegates to them. In the case of another expression org.opalj.tac.fpcf.analyses.escape.AbstractEscapeAnalysis.handleOtherKindsOfExpressions will be called.

    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  24. def handleInvokedynamicFunctionCall(call: InvokedynamicFunctionCall[V], hasAssignment: Boolean)(implicit context: AnalysisContext, state: AnalysisState): Unit

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    This analysis only uses intra-procedural knowledge and does not take the behavior of the called method(s) into consideration.

    Attributes
    protected[this]
    Definition Classes
    DefaultEscapeAnalysisAbstractEscapeAnalysis
  25. def handleInvokedynamicMethodCall(call: InvokedynamicMethodCall[V])(implicit context: AnalysisContext, state: AnalysisState): Unit
    Attributes
    protected[this]
    Definition Classes
    DefaultEscapeAnalysisAbstractEscapeAnalysis
  26. def handleNonVirtualAndNonConstructorCall(call: NonVirtualMethodCall[V])(implicit context: AnalysisContext, state: AnalysisState): Unit
    Attributes
    protected[this]
    Definition Classes
    AbstractInterProceduralEscapeAnalysisAbstractEscapeAnalysis
  27. def handleNonVirtualFunctionCall(call: NonVirtualFunctionCall[V], hasAssignment: Boolean)(implicit context: AnalysisContext, state: AnalysisState): Unit

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    This analysis only uses intra-procedural knowledge and does not take the behavior of the called method(s) into consideration.

    Attributes
    protected[this]
    Definition Classes
    AbstractInterProceduralEscapeAnalysisAbstractEscapeAnalysis
  28. def handleNonVirtualMethodCall(call: NonVirtualMethodCall[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    This analysis only uses intra-procedural knowledge and does not take the behavior of the called method(s) into consideration.

    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  29. def handleOtherKindsOfExpressions(expr: Expr[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    All basic analyses only care about function calls for org.opalj.tac.Assignment or org.opalj.tac.ExprStmt, but if a future analysis requires handling other expressions, it can override this method.

    All basic analyses only care about function calls for org.opalj.tac.Assignment or org.opalj.tac.ExprStmt, but if a future analysis requires handling other expressions, it can override this method.

    Attributes
    protected[this]
    Definition Classes
    DefaultEscapeAnalysisAbstractEscapeAnalysis
  30. def handleParameterOfConstructor(call: NonVirtualMethodCall[V])(implicit context: AnalysisContext, state: AnalysisState): Unit
    Attributes
    protected[this]
    Definition Classes
    AbstractInterProceduralEscapeAnalysisAbstractEscapeAnalysis
  31. def handlePutField(putField: PutField[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    Putting an entity into a field can lead to an escape if the base of that field escapes or let its field escape.

    Putting an entity into a field can lead to an escape if the base of that field escapes or let its field escape.

    This analysis only uses intra-procedural knowledge and does not take the behavior of the called method(s) into consideration.

    Attributes
    protected[this]
    Definition Classes
    SimpleFieldAwareEscapeAnalysisAbstractEscapeAnalysis
  32. def handleStaticFunctionCall(call: StaticFunctionCall[V], hasAssignment: Boolean)(implicit context: AnalysisContext, state: AnalysisState): Unit

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    This analysis only uses intra-procedural knowledge and does not take the behavior of the called method(s) into consideration.

    Attributes
    protected[this]
    Definition Classes
    AbstractInterProceduralEscapeAnalysisAbstractEscapeAnalysis
  33. def handleStaticMethodCall(call: StaticMethodCall[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    This analysis only uses intra-procedural knowledge and does not take the behavior of the called method(s) into consideration.

    Attributes
    protected[this]
    Definition Classes
    AbstractInterProceduralEscapeAnalysisAbstractEscapeAnalysis
  34. def handleThisLocalOfConstructor(call: NonVirtualMethodCall[V])(implicit context: AnalysisContext, state: AnalysisState): Unit
    Attributes
    protected[this]
    Definition Classes
    ConfigurationBasedConstructorEscapeAnalysisAbstractEscapeAnalysis
  35. def handleThrow(aThrow: Throw[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    Thrown exceptions that are not caught would lead to a org.opalj.br.fpcf.properties.EscapeViaAbnormalReturn.

    Thrown exceptions that are not caught would lead to a org.opalj.br.fpcf.properties.EscapeViaAbnormalReturn. This analysis does not check whether the exception is caught or not.

    Attributes
    protected[this]
    Definition Classes
    ExceptionAwareEscapeAnalysisAbstractEscapeAnalysis
    See also

    org.opalj.tac.fpcf.analyses.escape.ExceptionAwareEscapeAnalysis which overrides this very simple behavior.

  36. def handleVirtualFunctionCall(call: VirtualFunctionCall[V], hasAssignment: Boolean)(implicit context: AnalysisContext, state: AnalysisState): Unit

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    This analysis only uses intra-procedural knowledge and does not take the behavior of the called method(s) into consideration.

    Attributes
    protected[this]
    Definition Classes
    AbstractInterProceduralEscapeAnalysisAbstractEscapeAnalysis
  37. def handleVirtualMethodCall(call: VirtualMethodCall[V])(implicit context: AnalysisContext, state: AnalysisState): Unit

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    Passing an entity as argument to a call, will make the entity at most org.opalj.br.fpcf.properties.EscapeInCallee.

    This analysis only uses intra-procedural knowledge and does not take the behavior of the called method(s) into consideration.

    Attributes
    protected[this]
    Definition Classes
    AbstractInterProceduralEscapeAnalysisAbstractEscapeAnalysis
  38. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  39. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  40. implicit final def logContext: LogContext
    Definition Classes
    ProjectBasedAnalysis
  41. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  42. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  43. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  44. implicit final def p: SomeProject
    Definition Classes
    ProjectBasedAnalysis
  45. final val project: SomeProject
  46. implicit final val propertyStore: PropertyStore
    Definition Classes
    FPCFAnalysis
  47. final def ps: PropertyStore
    Definition Classes
    FPCFAnalysis
  48. def returnResult(implicit context: AnalysisContext, state: AnalysisState): ProperPropertyComputationResult

    This method is called, after the entity has been analyzed.

    This method is called, after the entity has been analyzed. If there is no dependee left or the entity escapes globally, the result is returned directly. Otherwise, the maybe version of the current escape state is returned as org.opalj.fpcf.InterimResult.

    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  49. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  50. def toString(): String
    Definition Classes
    AnyRef → Any
  51. implicit val typeIterator: TypeIterator
    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  52. lazy val virtualFormalParameters: VirtualFormalParameters
    Attributes
    protected[this]
    Definition Classes
    AbstractEscapeAnalysis
  53. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  54. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  55. 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 DefaultEscapeAnalysis

Inherited from AbstractEscapeAnalysis

Inherited from FPCFAnalysis

Inherited from ProjectBasedAnalysis

Inherited from AnyRef

Inherited from Any

Ungrouped