scala

EmbeddedControls

trait EmbeddedControls extends AnyRef

The EmbeddedControls object provides method definitions where calls to the methods are treated by the compiler in a special way. The reason to express these calls as methods is to give embedded DSLs a chance to provide their own definitions and thereby override the standard interpretation of the compiler.

Example: When faces with an if construct, the parser will generate

a method call: ifThenElse(cond, thenp, elsep)

This method call will be bound to an implementation based on normal rules of scoping. If it binds to the standard one in this trait, the type checker will replace it by an If tree node. If not, the call will be left as it is and a staging or interpreting DSL can take over.

Source
Predef.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. EmbeddedControls
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. class Scope[Interface, Implementation, Result] extends AnyRef

    given def OptiML[R](b: => R) = new Scope[OptiML, OptiMLExp, R](b)

    given def OptiML[R](b: => R) = new Scope[OptiML, OptiMLExp, R](b)

    OptiML { body } is expanded to:

    trait DSLprog$ extends OptiML { def apply = body } (new DSLprog$ with OptiMLExp): OptiML with OptiMLExp

  2. trait Struct extends AnyRef

    Struct is a marker trait used to indicate that new C { ... } should be reified.

    Struct is a marker trait used to indicate that new C { ... } should be reified.

    Selections on the result e of the reified object creation, e.x_i, are treated specially, as outlined below.

    If there's a type constructor Rep (of kind * -> *) so that C <:< Struct, the expression new C { (val x_i: T_i = v_i)* } is turned into the call new(("x_i", (self_i: Rep[C{ (val x_i: T_i')* }]) => v_i')*), which is typed with expected type Rep[C{ (val x_i: T_i')* }]

    For all i,

    • there must be some T_i' so that T_i = Rep[T_i'] -- or, if that previous equality is not unifiable, T_i = T_i'
    • the v_i' result from retyping v_i with expected type Rep[T_i'], after replacing this by a fresh variable self_i (with type Rep[C{ (val x_i: T_i')* }])

    This assumes there is a method in scope similar to: def new[T](args: (String, Rep[T] => Rep[_])*): Rep[T]

    When a selection e.x_i does not type check according to the normal typing rules, and e has type Rep[C{ (val x_i: T_i')* }] (where C meets the criteria outlined above), e.x_i is turned into e.selectDynamic[T_i]("x_i")

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Implicit information
    This member is added by an implicit conversion from EmbeddedControls to any2stringadd[EmbeddedControls] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (EmbeddedControls, B)

    Implicit information
    This member is added by an implicit conversion from EmbeddedControls to ArrowAssoc[EmbeddedControls] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  6. def __assign[T](lhs: T, rhs: T): Unit

  7. def __doWhile(body: Unit, cond: Boolean): Unit

  8. def __equal(expr1: Any, expr2: Any): Boolean

  9. def __ifThenElse[T](cond: ⇒ Boolean, thenp: ⇒ T, elsep: ⇒ T): T

  10. def __newVar[T](init: T): T

  11. def __return(expr: Any): Nothing

  12. def __whileDo(cond: Boolean, body: Unit): Unit

    Note why types are by-value

  13. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  14. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  15. def ensuring(cond: (EmbeddedControls) ⇒ Boolean, msg: ⇒ Any): EmbeddedControls

    Implicit information
    This member is added by an implicit conversion from EmbeddedControls to Ensuring[EmbeddedControls] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  16. def ensuring(cond: (EmbeddedControls) ⇒ Boolean): EmbeddedControls

    Implicit information
    This member is added by an implicit conversion from EmbeddedControls to Ensuring[EmbeddedControls] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. def ensuring(cond: Boolean, msg: ⇒ Any): EmbeddedControls

    Implicit information
    This member is added by an implicit conversion from EmbeddedControls to Ensuring[EmbeddedControls] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  18. def ensuring(cond: Boolean): EmbeddedControls

    Implicit information
    This member is added by an implicit conversion from EmbeddedControls to Ensuring[EmbeddedControls] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  19. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  20. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  21. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  22. def formatted(fmtstr: String): String

    Returns string formatted according to given format string.

    Returns string formatted according to given format string. Format strings are as for String.format (@see java.lang.String.format).

    Implicit information
    This member is added by an implicit conversion from EmbeddedControls to StringFormat[EmbeddedControls] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  23. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  24. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  25. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  26. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  27. final def notify(): Unit

    Definition Classes
    AnyRef
  28. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  29. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  30. def toString(): String

    Definition Classes
    AnyRef → Any
  31. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. def [B](y: B): (EmbeddedControls, B)

    Implicit information
    This member is added by an implicit conversion from EmbeddedControls to ArrowAssoc[EmbeddedControls] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from EmbeddedControls to any2stringadd[EmbeddedControls]

Inherited by implicit conversion StringFormat from EmbeddedControls to StringFormat[EmbeddedControls]

Inherited by implicit conversion Ensuring from EmbeddedControls to Ensuring[EmbeddedControls]

Inherited by implicit conversion ArrowAssoc from EmbeddedControls to ArrowAssoc[EmbeddedControls]

Ungrouped