class L0FieldAssignabilityAnalysis extends FPCFAnalysis
Determines if a private, static, non-final field is always initialized at most once or if a field is or can be mutated after (lazy) initialization. Field read and writes at initialization time (e.g., if the current class object is registered in some publicly available data-store) are not considered. This is in-line with the semantics of final, which also does not prevent reads of partially initialized objects.
- Alphabetic
- By Inheritance
- L0FieldAssignabilityAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type AnalysisState = L0FieldAssignabilityAnalysisState
- case class L0FieldAssignabilityAnalysisState(field: Field) extends Product with Serializable
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
- 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()
- final val contextProvider: ContextProvider
- def continuation(eps: SomeEPS)(implicit state: AnalysisState): ProperPropertyComputationResult
- def createResult()(implicit state: AnalysisState): ProperPropertyComputationResult
- final val declaredFields: DeclaredFields
- implicit val declaredMethods: DeclaredMethods
- def determineFieldAssignability(field: Field): ProperPropertyComputationResult
Analyzes the mutability of private static non-final fields.
Analyzes the mutability of private static non-final fields.
This analysis is only defined and soundy if the class file does not contain native methods and the method body of all non-abstract methods is available. (If the analysis is scheduled using its companion object, all class files with native methods are filtered.)
- field
A field without native methods and where the method body of all non-abstract methods is available.
- def determineFieldAssignabilityLazy(e: Entity): ProperPropertyComputationResult
Invoked for in the lazy computation case.
Invoked for in the lazy computation case. Final fields are considered org.opalj.br.fpcf.properties.immutability.NonAssignable, non-final and non-private fields or fields of library classes whose method bodies are not available are considered org.opalj.br.fpcf.properties.immutability.Assignable. For all other cases the call is delegated to determineFieldAssignability.
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def handleFieldWriteAccessInformation(faiEP: EOptionP[DeclaredField, FieldWriteAccessInformation])(implicit state: AnalysisState): Boolean
Processes the given field access information to evaluate if the given field is written statically in the method at the given PCs.
Processes the given field access information to evaluate if the given field is written statically in the method at the given PCs. Updates the state to account for the new value.
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- 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 def p: SomeProject
- Definition Classes
- ProjectBasedAnalysis → ProjectBasedAnalysis
- val project: SomeProject
- Definition Classes
- L0FieldAssignabilityAnalysis → ProjectBasedAnalysis → 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(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
- Deprecated