case class ExprStmt[+V <: Var[V]](pc: Int, expr: Expr[V]) extends AssignmentLikeStmt[V] with Product with Serializable
- Alphabetic
- By Inheritance
- ExprStmt
- Serializable
- Product
- Equals
- AssignmentLikeStmt
- Stmt
- ASTNode
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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 asArrayStore: ArrayStore[V]
- Definition Classes
- Stmt
- def asAssignment: Assignment[V]
- Definition Classes
- Stmt
- final def asAssignmentLike: AssignmentLikeStmt[V]
- Definition Classes
- AssignmentLikeStmt → Stmt
- def asCaughtException: CaughtException[V]
- Definition Classes
- Stmt
- def asCheckcast: Checkcast[V]
- Definition Classes
- Stmt
- final def asExprStmt: ExprStmt.this.type
- def asFieldWriteAccessStmt: FieldWriteAccessStmt[V]
- Definition Classes
- Stmt
- def asGoto: Goto
- Definition Classes
- Stmt
- def asIf: If[V]
- Definition Classes
- Stmt
- def asInstanceMethodCall: InstanceMethodCall[V]
- Definition Classes
- Stmt
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- 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
- def asPutField: PutField[V]
- Definition Classes
- Stmt
- 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. - 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
- val expr: Expr[V]
- Definition Classes
- ExprStmt → AssignmentLikeStmt
- final def forallSubExpressions[W >: V <: Var[W]](p: (Expr[W]) => Boolean): Boolean
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Opcode
- Definition Classes
- ExprStmt → 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
- final def isExprStmt: Boolean
- def isIf: Boolean
- Definition Classes
- Stmt
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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
- def isPutField: Boolean
- Definition Classes
- Stmt
- 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
- ExprStmt → 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
- 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()
- val pc: Int
The program counter of the original underyling bytecode instruction.
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- 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
- ExprStmt → 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