class LoadedClassesAnalysis extends FPCFAnalysis
For a reachable methods (see Callers) this class computes the classes that are being loaded (e.g. due to static field accesses).
- Alphabetic
- By Inheritance
- LoadedClassesAnalysis
- FPCFAnalysis
- ProjectBasedAnalysis
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new LoadedClassesAnalysis(project: SomeProject)
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 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 handleCaller(declaredMethod: DeclaredMethod): PropertyComputationResult
If the method in
callersOfMethod
has no callers (NoCallers), it is not reachable, and its declaring class will not be loaded (at least not via this call).If the method in
callersOfMethod
has no callers (NoCallers), it is not reachable, and its declaring class will not be loaded (at least not via this call).If it is not yet known, we register a dependency to it.
In case there are definitively some callers, we remove the potential existing dependency and handle the method as being newly reachable (i.e. analyse the field accesses of the method and update its declaring class type as reachable) Here we add ne classes as being loaded.
- def handleNewReachableMethod(declClassType: ObjectType, stmts: Array[Stmt[V]]): UIDSet[ObjectType]
For a reachable method, its declaring class will be loaded by the VM (if not done already).
For a reachable method, its declaring class will be loaded by the VM (if not done already). In order to ensure this, the
state
will be updated.Furthermore, the method may access static fields, which again may lead to class loading.
- returns
The set of classes being loaded.
- 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 final def p: SomeProject
- Definition Classes
- ProjectBasedAnalysis
- val project: SomeProject
- Definition Classes
- LoadedClassesAnalysis → 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