Packages

case class PutField[+V <: Var[V]](pc: Int, declaringClass: ObjectType, name: String, declaredFieldType: FieldType, objRef: Expr[V], value: Expr[V]) extends FieldWriteAccessStmt[V] with Product with Serializable

Source
Stmt.scala
Linear Supertypes
Serializable, Product, Equals, FieldWriteAccessStmt[V], Stmt[V], ASTNode[V], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PutField
  2. Serializable
  3. Product
  4. Equals
  5. FieldWriteAccessStmt
  6. Stmt
  7. ASTNode
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new PutField(pc: Int, declaringClass: ObjectType, name: String, declaredFieldType: FieldType, objRef: Expr[V], value: Expr[V])

Value Members

  1. def asArrayStore: ArrayStore[V]
    Definition Classes
    Stmt
  2. def asAssignment: Assignment[V]
    Definition Classes
    Stmt
  3. def asAssignmentLike: AssignmentLikeStmt[V]
    Definition Classes
    Stmt
  4. def asCaughtException: CaughtException[V]
    Definition Classes
    Stmt
  5. def asCheckcast: Checkcast[V]
    Definition Classes
    Stmt
  6. def asExprStmt: ExprStmt[V]
    Definition Classes
    Stmt
  7. final def asFieldWriteAccessStmt: PutField.this.type
    Definition Classes
    FieldWriteAccessStmtStmt
  8. def asGoto: Goto
    Definition Classes
    Stmt
  9. def asIf: If[V]
    Definition Classes
    Stmt
  10. def asInstanceMethodCall: InstanceMethodCall[V]
    Definition Classes
    Stmt
  11. def asInvokedynamicMethodCall: InvokedynamicMethodCall[V]
    Definition Classes
    Stmt
  12. def asJSR: JSR
    Definition Classes
    Stmt
  13. def asMethodCall: MethodCall[V]
    Definition Classes
    Stmt
  14. def asMonitorEnter: MonitorEnter[V]
    Definition Classes
    Stmt
  15. def asMonitorExit: MonitorExit[V]
    Definition Classes
    Stmt
  16. def asNonVirtualMethodCall: NonVirtualMethodCall[V]
    Definition Classes
    Stmt
  17. def asNop: Nop
    Definition Classes
    Stmt
  18. final def asPutField: PutField.this.type
    Definition Classes
    PutFieldStmt
  19. def asPutStatic: PutStatic[V]
    Definition Classes
    Stmt
  20. def asRet: Ret
    Definition Classes
    Stmt
  21. def asReturn: Return
    Definition Classes
    Stmt
  22. def asReturnValue: ReturnValue[V]
    Definition Classes
    Stmt
  23. def asStaticMethodCall: StaticMethodCall[V]
    Definition Classes
    Stmt
  24. def asSwitch: Switch[V]
    Definition Classes
    Stmt
  25. def asSynchronizationStmt: SynchronizationStmt[V]
    Definition Classes
    Stmt
  26. def asThrow: Throw[V]
    Definition Classes
    Stmt
  27. def asVirtualMethodCall: VirtualMethodCall[V]
    Definition Classes
    Stmt
  28. 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
    PutFieldASTNode
  29. val declaredFieldType: FieldType
    Definition Classes
    PutFieldFieldWriteAccessStmt
  30. val declaringClass: ObjectType
    Definition Classes
    PutFieldFieldWriteAccessStmt
  31. final def forallSubExpressions[W >: V <: Var[W]](p: (Expr[W]) => Boolean): Boolean
    Definition Classes
    PutFieldStmt
  32. def hashCode(): Opcode
    Definition Classes
    PutField → AnyRef → Any
  33. def isArrayStore: Boolean
    Definition Classes
    Stmt
  34. def isAssignment: Boolean
    Definition Classes
    Stmt
  35. def isCaughtException: Boolean
    Definition Classes
    Stmt
  36. def isCheckcast: Boolean
    Definition Classes
    Stmt
  37. def isExprStmt: Boolean
    Definition Classes
    Stmt
  38. def isIf: Boolean
    Definition Classes
    Stmt
  39. def isMethodCall: Boolean
    Definition Classes
    Stmt
  40. def isMonitorEnter: Boolean
    Definition Classes
    Stmt
  41. def isMonitorExit: Boolean
    Definition Classes
    Stmt
  42. def isNonVirtualMethodCall: Boolean
    Definition Classes
    Stmt
  43. def isNop: Boolean
    Definition Classes
    Stmt
  44. final def isPutField: Boolean
    Definition Classes
    PutFieldStmt
  45. def isPutStatic: Boolean
    Definition Classes
    Stmt
  46. def isReturnValue: Boolean
    Definition Classes
    Stmt
  47. 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
    PutFieldASTNode
    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.

  48. def isStaticMethodCall: Boolean
    Definition Classes
    Stmt
  49. def isThrow: Boolean
    Definition Classes
    Stmt
  50. def isVirtualMethodCall: Boolean
    Definition Classes
    Stmt
  51. val name: String
    Definition Classes
    PutFieldFieldWriteAccessStmt
  52. val objRef: Expr[V]
  53. val pc: Int

    The program counter of the original underyling bytecode instruction.

    The program counter of the original underyling bytecode instruction.

    This pc is independent of the (implicit) index of the statement in the generated statements array! This pc is, e.g., useful for getting line number information.

    Definition Classes
    PutFieldStmt
  54. def productElementNames: Iterator[String]
    Definition Classes
    Product
  55. def resolveField(implicit p: ProjectLike): Option[Field]

    Identifies the field if it can be found.

    Identifies the field if it can be found.

    Definition Classes
    FieldWriteAccessStmt
  56. final def toCanonicalForm(implicit ev: <:<[V, DUVar[ValueInformation]]): Stmt[DUVar[ValueInformation]]

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

  57. def toString(): String
    Definition Classes
    PutField → AnyRef → Any
  58. val value: Expr[V]
    Definition Classes
    PutFieldFieldWriteAccessStmt