Packages

sealed case class BinaryOp(op: Code, lhs: Tree, rhs: Tree)(implicit pos: Position) extends Tree with Product with Serializable

Binary operation.

All binary operations follow common evaluation steps:

  1. Let lhsValue be the result of evaluating lhs. 2. Let rhsValue be the result of evaluating rhs. 3. Perform an operation that depends on op, lhsValue and rhsValue.

Unless lhsValue throws, rhsValue will therefore always be evaluated, even if the operation op would throw based only on lhsValue.

The integer dividing operators (Int_/, Int_%, Long_/ and Long_%) throw an ArithmeticException when their right-hand-side is 0. That exception is not subject to undefined behavior.

String_charAt throws a StringIndexOutOfBoundsException.

The Class_x operations take a jl.Class! as lhs, i.e., a non-nullable jl.Class. Class_isAssignableFrom also takes a jl.Class! as rhs.

  • Class_isInstance and Class_isAssignableFrom are pure.
  • Class_cast throws a CCE if its second argument is non-null and not an instance of the class represented by its first argument.
  • Class_newArray throws a NegativeArraySizeException if its second argument is negative and an IllegalArgumentException if its first argument is classOf[Unit].

Otherwise, binary operations preserve pureness.

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BinaryOp
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Tree
  7. TreeOrJSSpread
  8. IRNode
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new BinaryOp(op: Code, lhs: Tree, rhs: Tree)(implicit pos: Position)

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 asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  8. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  9. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  10. val lhs: Tree
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. val op: Code
  15. implicit val pos: Position
    Definition Classes
    BinaryOpIRNode
  16. val rhs: Tree
  17. def show: String
    Definition Classes
    IRNode
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. val tpe: Type
    Definition Classes
    BinaryOpTree
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Tree

Inherited from TreeOrJSSpread

Inherited from IRNode

Inherited from AnyRef

Inherited from Any

Ungrouped