Packages

case class VirtualFunctionCall[+V <: Var[V]](pc: PC, declaringClass: ReferenceType, isInterface: Boolean, name: String, descriptor: MethodDescriptor, receiver: Expr[V], params: Seq[Expr[V]]) extends InstanceFunctionCall[V] with VirtualCall[V] with Product with Serializable

Source
Expr.scala
Linear Supertypes
Serializable, Product, Equals, VirtualCall[V], InstanceFunctionCall[V], FunctionCall[V], Call[V], Expr[V], ASTNode[V], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. VirtualFunctionCall
  2. Serializable
  3. Product
  4. Equals
  5. VirtualCall
  6. InstanceFunctionCall
  7. FunctionCall
  8. Call
  9. Expr
  10. ASTNode
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new VirtualFunctionCall(pc: PC, declaringClass: ReferenceType, isInterface: Boolean, name: String, descriptor: MethodDescriptor, receiver: Expr[V], params: Seq[Expr[V]])

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def allParams: Seq[Expr[V]]

    The parameters of the call (including the implicit this reference if necessary.)

    The parameters of the call (including the implicit this reference if necessary.)

    Definition Classes
    InstanceFunctionCallCall
  5. def asArrayLength: ArrayLength[V]
    Definition Classes
    Expr
  6. def asArrayLoad: ArrayLoad[V]
    Definition Classes
    Expr
  7. def asBinaryExpr: BinaryExpr[V]
    Definition Classes
    Expr
  8. def asClassConst: ClassConst
    Definition Classes
    Expr
  9. def asCompare: Compare[V]
    Definition Classes
    Expr
  10. def asDoubleConst: DoubleConst
    Definition Classes
    Expr
  11. def asDynamicConst: DynamicConst
    Definition Classes
    Expr
  12. def asFieldRead: FieldRead[V]
    Definition Classes
    Expr
  13. def asFloatConst: FloatConst
    Definition Classes
    Expr
  14. final def asFunctionCall: VirtualFunctionCall.this.type
    Definition Classes
    FunctionCallExpr
  15. def asGetField: GetField[V]
    Definition Classes
    Expr
  16. def asGetStatic: GetStatic
    Definition Classes
    Expr
  17. final def asInstanceFunctionCall: VirtualFunctionCall.this.type
    Definition Classes
    InstanceFunctionCallExpr
  18. def asInstanceOf: InstanceOf[V]
    Definition Classes
    Expr
  19. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  20. def asIntConst: IntConst
    Definition Classes
    Expr
  21. def asInvokedynamicFunctionCall: InvokedynamicFunctionCall[V]
    Definition Classes
    Expr
  22. def asLongConst: LongConst
    Definition Classes
    Expr
  23. def asMethodHandleConst: MethodHandleConst
    Definition Classes
    Expr
  24. def asMethodTypeConst: MethodTypeConst
    Definition Classes
    Expr
  25. def asNew: New
    Definition Classes
    Expr
  26. def asNewArray: NewArray[V]
    Definition Classes
    Expr
  27. def asNonVirtualFunctionCall: NonVirtualFunctionCall[V]
    Definition Classes
    Expr
  28. def asNullExpr: NullExpr
    Definition Classes
    Expr
  29. def asParam: Param
    Definition Classes
    Expr
  30. def asPrefixExpr: PrefixExpr[V]
    Definition Classes
    Expr
  31. def asPrimitiveTypeCastExpr: PrimitiveTypecastExpr[V]
    Definition Classes
    Expr
  32. def asStaticFunctionCall: StaticFunctionCall[V]
    Definition Classes
    Expr
  33. def asStringConst: StringConst
    Definition Classes
    Expr
  34. def asVar: V
    Definition Classes
    Expr
  35. final def asVirtualFunctionCall: VirtualFunctionCall.this.type
    Definition Classes
    VirtualFunctionCallExpr
  36. final def astID: Int

    Each type of node is assigned a different id to make it easily possible to do a switch over all nodes.

    Each type of node is assigned a different id to make it easily possible to do a switch over all nodes.

    Definition Classes
    VirtualFunctionCallASTNode
  37. final def cTpe: ComputationalType

    The computational type of the underlying value.

    The computational type of the underlying value.

    I.e., an approximation of the type of the underlying value. It is the best type information directly available. The precision of the type information depends on the number of pre-/post-processing steps that are done.

    Definition Classes
    FunctionCallExpr
  38. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  39. val declaringClass: ReferenceType

    The declaring class; can be an array type for all methods defined by java.lang.Object.

    The declaring class; can be an array type for all methods defined by java.lang.Object.

    Definition Classes
    VirtualFunctionCallCall
  40. val descriptor: MethodDescriptor
    Definition Classes
    VirtualFunctionCallCall
  41. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  42. final def forallSubExpressions[W >: V <: Var[W]](p: (Expr[W]) => Boolean): Boolean

    Returns true if the given predicate evaluates to true for all direct subexpressions of this expression; if the evaluation should perform a recursive decent then it needs to be done by the predicate!

    Returns true if the given predicate evaluates to true for all direct subexpressions of this expression; if the evaluation should perform a recursive decent then it needs to be done by the predicate!

    Definition Classes
    InstanceFunctionCallExpr
  43. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  44. def hashCode(): Int
    Definition Classes
    VirtualFunctionCall → AnyRef → Any
  45. def isArrayLoad: Boolean
    Definition Classes
    Expr
  46. def isClassConst: Boolean
    Definition Classes
    Expr
  47. def isCompare: Boolean
    Definition Classes
    Expr
  48. def isConst: Boolean
    Definition Classes
    Expr
  49. def isDoubleConst: Boolean
    Definition Classes
    Expr
  50. def isDynamicConst: Boolean
    Definition Classes
    Expr
  51. def isFieldRead: Boolean
    Definition Classes
    Expr
  52. def isFloatConst: Boolean
    Definition Classes
    Expr
  53. final def isFunctionCall: Boolean
    Definition Classes
    FunctionCallExpr
  54. def isGetField: Boolean
    Definition Classes
    Expr
  55. def isGetStatic: Boolean
    Definition Classes
    Expr
  56. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  57. def isIntConst: Boolean
    Definition Classes
    Expr
  58. val isInterface: Boolean

    true iff the declaring class is an interface.

    true iff the declaring class is an interface.

    Definition Classes
    VirtualFunctionCallCall
  59. def isLongConst: Boolean
    Definition Classes
    Expr
  60. def isMethodHandleConst: Boolean
    Definition Classes
    Expr
  61. def isMethodTypeConst: Boolean
    Definition Classes
    Expr
  62. def isNew: Boolean
    Definition Classes
    Expr
  63. def isNewArray: Boolean
    Definition Classes
    Expr
  64. def isNullExpr: Boolean
    Definition Classes
    Expr
  65. final def isSideEffectFree: Boolean

    true if the statement/expression is GUARANTEED to have no externally observable effect if it is not executed.

    true if the statement/expression is GUARANTEED to have no externally observable effect if it is not executed. Sideeffect free instructions can be removed if the result of the evaluation of the expression/statement is not used. For those instructions, which may result in an exception, it has to be guaranteed that the exception is NEVER thrown. For example, a div instruction is sideeffect free if it is (statically) known that the divisor is always not equal to zero; otherwise, even if the result value is not used, the expression is not (potentially) side effect free. An array load is only side effect free if the array reference is non-null and if the index is valid.

    returns

    true if the expression is GUARENTEED to have no side effect other than wasting some CPU cycles if it is not executed.

    Definition Classes
    VirtualFunctionCallASTNode
    Note

    Deeply nested expressions are not supported; i.e. an expression's sub-expressions have to be Var or Const expressions. Generally, a statements expressions have to to simple expressions too - except of the Assignment statement; in the latter case the right-expression can have references to simple expressions. Hence, in case of Assignment statements the side-effect freenes is determined by the referenced expression; in all other cases the side-effect freeness is determined directly by the statement/expression.

  66. def isStaticFunctionCall: Boolean
    Definition Classes
    Expr
  67. def isStringConst: Boolean
    Definition Classes
    Expr
  68. final def isValueExpression: Boolean

    true if this expression is a Var.

    true if this expression is a Var.

    Definition Classes
    FunctionCallExpr
  69. final def isVar: Boolean
    Definition Classes
    FunctionCallExpr
  70. final def isVirtualFunctionCall: Boolean
    Definition Classes
    VirtualFunctionCallExpr
  71. val name: String
    Definition Classes
    VirtualFunctionCallCall
  72. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  73. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  74. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  75. val params: Seq[Expr[V]]

    The parameters of the call (excluding the implicit this reference.)

    The parameters of the call (excluding the implicit this reference.)

    Definition Classes
    VirtualFunctionCallCall
  76. val pc: PC
  77. def productElementNames: Iterator[String]
    Definition Classes
    Product
  78. val receiver: Expr[V]
  79. final def receiverOption: Some[Expr[V]]

    The receiver of the call if it is an instance call, None if it is a static call.

    The receiver of the call if it is an instance call, None if it is a static call.

    Definition Classes
    InstanceFunctionCallCall
  80. def resolveCallTargets(callingContext: ObjectType)(implicit p: ProjectLike, ev: <:<[V, DUVar[ValueInformation]]): Set[Method]

    Resolves the call targets taking the domain value information (isPrecise and isNull) into consideration.

    Resolves the call targets taking the domain value information (isPrecise and isNull) into consideration.

    Definition Classes
    VirtualCall
    Note

    This method requires that we have a flat representation! (That is, the receiver is a Var.)

  81. final def subExpr(index: Int): Expr[V]

    Returns the sub expression with the given index; if the index is wrong the result is undefined!

    Returns the sub expression with the given index; if the index is wrong the result is undefined!

    Definition Classes
    InstanceFunctionCallExpr
  82. final def subExprCount: Int

    The number of sub expression directly referenced by this expression.

    The number of sub expression directly referenced by this expression. A unary expression has one sub expression (the operand), a binary expression has two and a method has as many as explicit and implicit (this) parameters exist.

    Definition Classes
    InstanceFunctionCallExpr
    Note

    Transitive dependencies are not counted.

  83. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  84. def toCanonicalForm(implicit ev: <:<[V, DUVar[ValueInformation]]): Expr[DUVar[ValueInformation]]

    See org.opalj.value.ValueInformation.toCanonicalForm for detail.

  85. def toString(): String
    Definition Classes
    VirtualFunctionCall → AnyRef → Any
  86. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  87. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  88. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from VirtualCall[V]

Inherited from InstanceFunctionCall[V]

Inherited from FunctionCall[V]

Inherited from Call[V]

Inherited from Expr[V]

Inherited from ASTNode[V]

Inherited from AnyRef

Inherited from Any

Ungrouped