Packages

sealed abstract class Stmt[+V <: Var[V]] extends ASTNode[V]

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Stmt
  2. ASTNode
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract 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
    ASTNode
  2. abstract def forallSubExpressions[W >: V <: Var[W]](p: (Expr[W]) => Boolean): Boolean
  3. abstract 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
    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.

  4. abstract def pc: UShort

    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.

  5. abstract def toCanonicalForm(implicit ev: <:<[V, DUVar[ValueInformation]]): Stmt[DUVar[ValueInformation]]

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

Concrete 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. def asArrayStore: ArrayStore[V]
  5. def asAssignment: Assignment[V]
  6. def asAssignmentLike: AssignmentLikeStmt[V]
  7. def asCaughtException: CaughtException[V]
  8. def asCheckcast: Checkcast[V]
  9. def asExprStmt: ExprStmt[V]
  10. def asFieldWriteAccessStmt: FieldWriteAccessStmt[V]
  11. def asGoto: Goto
  12. def asIf: If[V]
  13. def asInstanceMethodCall: InstanceMethodCall[V]
  14. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  15. def asInvokedynamicMethodCall: InvokedynamicMethodCall[V]
  16. def asJSR: JSR
  17. def asMethodCall: MethodCall[V]
  18. def asMonitorEnter: MonitorEnter[V]
  19. def asMonitorExit: MonitorExit[V]
  20. def asNonVirtualMethodCall: NonVirtualMethodCall[V]
  21. def asNop: Nop
  22. def asPutField: PutField[V]
  23. def asPutStatic: PutStatic[V]
  24. def asRet: Ret
  25. def asReturn: Return
  26. def asReturnValue: ReturnValue[V]
  27. def asStaticMethodCall: StaticMethodCall[V]
  28. def asSwitch: Switch[V]
  29. def asSynchronizationStmt: SynchronizationStmt[V]
  30. def asThrow: Throw[V]
  31. def asVirtualMethodCall: VirtualMethodCall[V]
  32. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  33. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  34. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  35. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  36. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  37. def isArrayStore: Boolean
  38. def isAssignment: Boolean
  39. def isCaughtException: Boolean
  40. def isCheckcast: Boolean
  41. def isExprStmt: Boolean
  42. def isIf: Boolean
  43. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  44. def isMethodCall: Boolean
  45. def isMonitorEnter: Boolean
  46. def isMonitorExit: Boolean
  47. def isNonVirtualMethodCall: Boolean
  48. def isNop: Boolean
  49. def isPutField: Boolean
  50. def isPutStatic: Boolean
  51. def isReturnValue: Boolean
  52. def isStaticMethodCall: Boolean
  53. def isThrow: Boolean
  54. def isVirtualMethodCall: Boolean
  55. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  56. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  57. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  58. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  59. def toString(): String
    Definition Classes
    AnyRef → Any
  60. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  61. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  62. 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 ASTNode[V]

Inherited from AnyRef

Inherited from Any

Ungrouped