trait RefinedTypeLevelInvokeInstructions extends MethodCallsDomainWithMethodLockup with PropertyStoreBased
- Self Type
- RefinedTypeLevelInvokeInstructions with ValuesFactory with ReferenceValuesDomain with Configuration with TheProject with TheCode
- Source
- RefinedTypeLevelInvokeInstructions.scala
- Alphabetic
- By Inheritance
- RefinedTypeLevelInvokeInstructions
- PropertyStoreBased
- TheProject
- LogContextProvider
- ThePropertyStore
- MethodCallsDomainWithMethodLockup
- MethodCallsHandling
- MethodCallsDomain
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type MethodCallResult = Computation[(RefinedTypeLevelInvokeInstructions.this)#DomainValue, (RefinedTypeLevelInvokeInstructions.this)#ExceptionValues]
- Definition Classes
- MethodCallsDomain
Abstract Value Members
- abstract val UsedPropertiesBound: SinglePropertiesBoundType
The type of the bound of the properties that are used.
The type of the bound of the properties that are used.
- Definition Classes
- PropertyStoreBased
- Note
We are restricted to
SinglePropertiesBoundType
to facilitate matching the bounds.
- abstract val dependees: EOptionPSet[Entity, Property]
- Definition Classes
- PropertyStoreBased
- abstract def invokedynamic(pc: Int, bootstrapMethod: BootstrapMethod, name: String, methodDescriptor: MethodDescriptor, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- Definition Classes
- MethodCallsDomain
- implicit abstract def project: SomeProject
Returns the project that is currently analyzed.
Returns the project that is currently analyzed.
- Definition Classes
- TheProject
Concrete 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
- def MethodCallResult(potentialExceptions: Iterable[(RefinedTypeLevelInvokeInstructions.this)#ExceptionValue]): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
Factory method called to create a MethodCallResult.
Factory method called to create a MethodCallResult.
- Attributes
- protected[this]
- Definition Classes
- MethodCallsHandling
- def MethodCallResult(returnValue: (RefinedTypeLevelInvokeInstructions.this)#DomainValue, exceptions: Iterable[(RefinedTypeLevelInvokeInstructions.this)#ExceptionValue]): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
Factory method called to create a MethodCallResult.
Factory method called to create a MethodCallResult.
- Attributes
- protected[this]
- Definition Classes
- MethodCallsHandling
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- implicit final def classHierarchy: ClassHierarchy
Returns the project's class hierarchy.
Returns the project's class hierarchy.
- Definition Classes
- TheProject
- Annotations
- @inline()
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- def doInvoke(pc: PC, invokeMethodDescriptor: MethodDescriptor, method: Method, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands, fallback: () => (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
Invokes the specified method.
Invokes the specified method.
- invokeMethodDescriptor
The descriptor specified by the invoke instruction.
- method
The called method. In case of MethodHandles, the invoked method's descriptor will most likely not match the descriptor specified by the invoke instruction.
- Attributes
- protected[this]
- Definition Classes
- RefinedTypeLevelInvokeInstructions → MethodCallsDomainWithMethodLockup
- def doInvokeWithRefinedReturnValue(calledMethod: Method, result: (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
Provides a hook for subclasses that need to track the information for which methods refined return value information is actually used.
Provides a hook for subclasses that need to track the information for which methods refined return value information is actually used.
- Attributes
- protected[this]
- Note
Intended to be overridden by subclasses. Subclasses should simply call this method last to get the correct behavior.
- def doNonVirtualInvoke(pc: PC, declaringType: ObjectType, isInterface: Boolean, name: String, descriptor: MethodDescriptor, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands, fallback: () => (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- Attributes
- protected[this]
- Definition Classes
- MethodCallsDomainWithMethodLockup
- def doVirtualInvoke(pc: PC, declaringType: ObjectType, isInterface: Boolean, name: String, descriptor: MethodDescriptor, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands, fallback: () => (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
Currently, if we have multiple targets,
fallback
is called and that result is returned.Currently, if we have multiple targets,
fallback
is called and that result is returned.- Attributes
- protected[this]
- Definition Classes
- MethodCallsDomainWithMethodLockup
- 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 getPotentialExceptions(pc: Int): List[(RefinedTypeLevelInvokeInstructions.this)#ExceptionValue]
- Attributes
- protected[this]
- Definition Classes
- MethodCallsHandling
- def handleInstanceBasedInvoke(pc: Int, methodDescriptor: MethodDescriptor, targetMethods: Set[Method], receiverIsNull: Answer, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- methodDescriptor
The method descriptor as specified by the invoke instruction. In case of the invocation of a signature polymorphic method using org.opalj.br.instructions.INVOKEVIRTUAL the descriptor of the invoked method may differ from the descriptor used by the method. Nevertheless, the MethodCallResult has to satisfy the requirements of the caller. In particular regarding the return type.
- Attributes
- protected[this]
- Definition Classes
- MethodCallsHandling
- def handleInstanceBasedInvoke(pc: Int, methodDescriptor: MethodDescriptor, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- Attributes
- protected[this]
- Definition Classes
- MethodCallsHandling
- def handleInstanceBasedInvoke(pc: Int, methodDescriptor: MethodDescriptor, receiverIsNull: Answer): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- Attributes
- protected[this]
- Definition Classes
- MethodCallsHandling
- def handleInvoke(pc: Int, methodDescriptor: MethodDescriptor): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- Attributes
- protected[this]
- Definition Classes
- MethodCallsHandling
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def invokeinterface(pc: PC, declaringType: ObjectType, name: String, descriptor: MethodDescriptor, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- Definition Classes
- MethodCallsDomainWithMethodLockup → MethodCallsDomain
- def invokespecial(pc: PC, declaringType: ObjectType, isInterface: Boolean, name: String, descriptor: MethodDescriptor, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- Definition Classes
- MethodCallsDomainWithMethodLockup → MethodCallsDomain
- def invokestatic(pc: PC, declaringType: ObjectType, isInterface: Boolean, name: String, descriptor: MethodDescriptor, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
Those
invokestatic
calls for which we have no concrete method (e.g., the respective class file was never loaded or the method is native) or if have a recursive invocation are delegated to the super class.Those
invokestatic
calls for which we have no concrete method (e.g., the respective class file was never loaded or the method is native) or if have a recursive invocation are delegated to the super class.- Definition Classes
- MethodCallsDomainWithMethodLockup → MethodCallsDomain
- def invokevirtual(pc: PC, declaringType: ReferenceType, name: String, descriptor: MethodDescriptor, operands: (RefinedTypeLevelInvokeInstructions.this)#Operands): (RefinedTypeLevelInvokeInstructions.this)#MethodCallResult
- Definition Classes
- MethodCallsDomainWithMethodLockup → MethodCallsDomain
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- implicit final def logContext: LogContext
- Definition Classes
- TheProject → LogContextProvider
- 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 lazy val propertyStore: PropertyStore
- Definition Classes
- TheProject → ThePropertyStore
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def tryLookup(declaringType: ObjectType, name: String, descriptor: MethodDescriptor): Boolean
Returns
true
for those methods for which we try to lookup the target method.Returns
true
for those methods for which we try to lookup the target method. This filter is collaboratively implemented (stackable trait).- returns
The default is to return
false
.
- Attributes
- protected[this]
- Definition Classes
- RefinedTypeLevelInvokeInstructions → MethodCallsDomainWithMethodLockup
- Note
Domains reusing this template domain have to be able to cope with ALL methods; this filter is only intended to provide performance optimizations if not all method lookups are actually required by all clients of this domain.
- def usesProperties: Set[PropertyKind]
The properties potentially queried by this domain.
The properties potentially queried by this domain. I.e., it must list all properties that are potentially queried by any instance.
This method must call its super method and accumulate the results (we have stackable traits!).
- Definition Classes
- RefinedTypeLevelInvokeInstructions → PropertyStoreBased
- final def usesPropertyBounds: Set[PropertyBounds]
- Definition Classes
- PropertyStoreBased
- 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