class L1FieldAssignabilityAnalysis extends AbstractFieldAssignabilityAnalysis
Simple analysis that checks if a private (static or instance) field is always initialized at most once or if a field is or can be mutated after (lazy) initialization.
- Source
- L1FieldAssignabilityAnalysis.scala
- Note
Requires that the 3-address code's expressions are not deeply nested.
- Alphabetic
- By Inheritance
- L1FieldAssignabilityAnalysis
- AbstractFieldAssignabilityAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait AbstractFieldAssignabilityAnalysisState extends AnyRef
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- type AnalysisState = State
- Definition Classes
- L1FieldAssignabilityAnalysis → AbstractFieldAssignabilityAnalysis
- case class State(field: Field) extends AbstractFieldAssignabilityAnalysisState with Product with Serializable
- type V = DUVar[ValueInformation]
- Definition Classes
- AbstractFieldAssignabilityAnalysis
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 c(eps: SomeEPS)(implicit state: AnalysisState): ProperPropertyComputationResult
Continuation function handling updates to the FieldPrematurelyRead property or to the purity property of the method that initializes a (potentially) lazy initialized field.
Continuation function handling updates to the FieldPrematurelyRead property or to the purity property of the method that initializes a (potentially) lazy initialized field.
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- 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 closedPackages: ClosedPackages
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- def createResult()(implicit state: AnalysisState): ProperPropertyComputationResult
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- def createState(field: Field): AnalysisState
- Definition Classes
- L1FieldAssignabilityAnalysis → AbstractFieldAssignabilityAnalysis
- implicit final val declaredMethods: DeclaredMethods
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- final val definitionSites: DefinitionSites
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- def doDetermineFieldAssignability(entity: Entity): ProperPropertyComputationResult
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final val fieldAccessInformation: FieldAccessInformation
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def getDefaultValues()(implicit state: AnalysisState): Set[Any]
Returns the initialization value of a given type.
Returns the initialization value of a given type.
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- def getTACAIAndCallers(method: Method, pcs: PCs)(implicit state: AnalysisState): Option[(TACode[TACMethodParameter, V], Callers)]
Returns TACode and Callers for a method if available, registering dependencies as necessary.
Returns TACode and Callers for a method if available, registering dependencies as necessary.
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- def handleEscapeProperty(ep: EOptionP[(Context, DefinitionSite), EscapeProperty])(implicit state: AnalysisState): Boolean
Handles the influence of an escape property on the field immutability.
Handles the influence of an escape property on the field immutability.
- returns
true if the object - on which a field write occurred - escapes, false otherwise.
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- Note
(Re-)Adds dependees as necessary.
- 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
- def methodUpdatesField(method: Method, taCode: TACode[TACMethodParameter, V], callers: Callers, pcs: PCs)(implicit state: AnalysisState): Boolean
Analyzes field writes for a single method, returning false if the field may still be effectively final and true otherwise.
Analyzes field writes for a single method, returning false if the field may still be effectively final and true otherwise.
- Definition Classes
- L1FieldAssignabilityAnalysis → AbstractFieldAssignabilityAnalysis
- 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 project: SomeProject
- Definition Classes
- L1FieldAssignabilityAnalysis → ProjectBasedAnalysis
- implicit final val propertyStore: PropertyStore
- Definition Classes
- FPCFAnalysis
- final def ps: PropertyStore
- Definition Classes
- FPCFAnalysis
- def referenceHasNotEscaped(ref: V, stmts: Array[Stmt[V]], method: Method, callers: Callers)(implicit state: AnalysisState): Boolean
Checks whether the object reference of a PutField does not escape (except for being returned).
Checks whether the object reference of a PutField does not escape (except for being returned).
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final val typeExtensibility: (ObjectType) => Answer
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- implicit final val typeIterator: TypeIterator
- Definition Classes
- AbstractFieldAssignabilityAnalysis
- 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