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
- Alphabetic
- By Inheritance
- PutField
- Serializable
- Product
- Equals
- FieldWriteAccessStmt
- Stmt
- ASTNode
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new PutField(pc: Int, declaringClass: ObjectType, name: String, declaredFieldType: FieldType, objRef: Expr[V], value: Expr[V])
Value Members
- def asArrayStore: ArrayStore[V]
- Definition Classes
- Stmt
- def asAssignment: Assignment[V]
- Definition Classes
- Stmt
- def asAssignmentLike: AssignmentLikeStmt[V]
- Definition Classes
- Stmt
- def asCaughtException: CaughtException[V]
- Definition Classes
- Stmt
- def asCheckcast: Checkcast[V]
- Definition Classes
- Stmt
- def asExprStmt: ExprStmt[V]
- Definition Classes
- Stmt
- final def asFieldWriteAccessStmt: PutField.this.type
- Definition Classes
- FieldWriteAccessStmt → Stmt
- def asGoto: Goto
- Definition Classes
- Stmt
- def asIf: If[V]
- Definition Classes
- Stmt
- def asInstanceMethodCall: InstanceMethodCall[V]
- Definition Classes
- Stmt
- def asInvokedynamicMethodCall: InvokedynamicMethodCall[V]
- Definition Classes
- Stmt
- def asJSR: JSR
- Definition Classes
- Stmt
- def asMethodCall: MethodCall[V]
- Definition Classes
- Stmt
- def asMonitorEnter: MonitorEnter[V]
- Definition Classes
- Stmt
- def asMonitorExit: MonitorExit[V]
- Definition Classes
- Stmt
- def asNonVirtualMethodCall: NonVirtualMethodCall[V]
- Definition Classes
- Stmt
- def asNop: Nop
- Definition Classes
- Stmt
- final def asPutField: PutField.this.type
- def asPutStatic: PutStatic[V]
- Definition Classes
- Stmt
- def asRet: Ret
- Definition Classes
- Stmt
- def asReturn: Return
- Definition Classes
- Stmt
- def asReturnValue: ReturnValue[V]
- Definition Classes
- Stmt
- def asStaticMethodCall: StaticMethodCall[V]
- Definition Classes
- Stmt
- def asSwitch: Switch[V]
- Definition Classes
- Stmt
- def asSynchronizationStmt: SynchronizationStmt[V]
- Definition Classes
- Stmt
- def asThrow: Throw[V]
- Definition Classes
- Stmt
- def asVirtualMethodCall: VirtualMethodCall[V]
- Definition Classes
- Stmt
- 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. - val declaredFieldType: FieldType
- Definition Classes
- PutField → FieldWriteAccessStmt
- val declaringClass: ObjectType
- Definition Classes
- PutField → FieldWriteAccessStmt
- final def forallSubExpressions[W >: V <: Var[W]](p: (Expr[W]) => Boolean): Boolean
- def hashCode(): Opcode
- Definition Classes
- PutField → AnyRef → Any
- def isArrayStore: Boolean
- Definition Classes
- Stmt
- def isAssignment: Boolean
- Definition Classes
- Stmt
- def isCaughtException: Boolean
- Definition Classes
- Stmt
- def isCheckcast: Boolean
- Definition Classes
- Stmt
- def isExprStmt: Boolean
- Definition Classes
- Stmt
- def isIf: Boolean
- Definition Classes
- Stmt
- def isMethodCall: Boolean
- Definition Classes
- Stmt
- def isMonitorEnter: Boolean
- Definition Classes
- Stmt
- def isMonitorExit: Boolean
- Definition Classes
- Stmt
- def isNonVirtualMethodCall: Boolean
- Definition Classes
- Stmt
- def isNop: Boolean
- Definition Classes
- Stmt
- final def isPutField: Boolean
- def isPutStatic: Boolean
- Definition Classes
- Stmt
- def isReturnValue: Boolean
- Definition Classes
- Stmt
- 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
- PutField → ASTNode
- 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.
- def isStaticMethodCall: Boolean
- Definition Classes
- Stmt
- def isThrow: Boolean
- Definition Classes
- Stmt
- def isVirtualMethodCall: Boolean
- Definition Classes
- Stmt
- val name: String
- Definition Classes
- PutField → FieldWriteAccessStmt
- val objRef: Expr[V]
- val pc: Int
The program counter of the original underyling bytecode instruction.
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- 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
- final def toCanonicalForm(implicit ev: <:<[V, DUVar[ValueInformation]]): Stmt[DUVar[ValueInformation]]
See org.opalj.value.ValueInformation.toCanonicalForm for detail.
See org.opalj.value.ValueInformation.toCanonicalForm for detail.
- def toString(): String
- Definition Classes
- PutField → AnyRef → Any
- val value: Expr[V]
- Definition Classes
- PutField → FieldWriteAccessStmt