class L0PurityAnalysis extends FPCFAnalysis
Very simple, fast, sound but also imprecise analysis of the purity of methods. See the
org.opalj.fpcf.properties.Purity property for details regarding the precise
semantics of (Im)Pure.
This analysis is a very, very shallow implementation that immediately gives up, when something "complicated" (e.g., method calls which take objects) is encountered. It also does not perform any significant control-/data-flow analyses.
- Alphabetic
- By Inheritance
- L0PurityAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
baseMethodPurity(dm: DefinedMethod): PropertyComputationResult
Retrieves and commits the methods purity as calculated for its declaring class type for the current DefinedMethod that represents the non-overwritten method in a subtype.
-
final
def
ch: ClassHierarchy
- Definition Classes
- ProjectBasedAnalysis
-
implicit final
def
classHierarchy: ClassHierarchy
- Definition Classes
- ProjectBasedAnalysis
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
determinePurity(definedMethod: DefinedMethod): PropertyComputationResult
Determines the purity of the given method.
- def determinePurityStep1(definedMethod: DefinedMethod): PropertyComputationResult
-
def
doDeterminePurity(e: Entity): PropertyComputationResult
Called when the analysis is scheduled lazily.
-
def
doDeterminePurityOfBody(definedMethod: DefinedMethod, initialDependees: Set[EOptionP[Entity, Property]]): PropertyComputationResult
Determines the purity of the method starting with the instruction with the given pc.
Determines the purity of the method starting with the instruction with the given pc. If the given pc is larger than 0 then all previous instructions (in particular method calls) must not violate this method's purity.
This function encapsulates the continuation.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
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()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
p: Project[_]
- Definition Classes
- ProjectBasedAnalysis
-
final
val
project: SomeProject
- Definition Classes
- L0PurityAnalysis → 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
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )