scala.slick.compiler

ReconstructProducts

class ReconstructProducts extends Phase

Since Nodes cannot be encoded into Scala Tuples, they have to be encoded into the Tuples' children instead, so we end up with trees like ProductNode(Select(r, ElementSymbol(1)), Select(r, ElementSymbol(2))) where r is a Ref to an expression that yields a Query of ProductNode(_, _). This optimizer rewrites those forms to the raw Ref r.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ReconstructProducts
  2. Phase
  3. Logging
  4. Function2
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ReconstructProducts()

Type Members

  1. abstract type State

    The immutable state of the phase that can also be accessed by other phases.

    The immutable state of the phase that can also be accessed by other phases.

    Definition Classes
    Phase

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def apply(tree: Node, state: CompilationState): Node

    Run the phase

    Run the phase

    Definition Classes
    ReconstructProductsPhase → Function2
  7. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  9. def commonPrefix(n: Node, base: ast.Symbol): Option[List[Int]]

    Find the common prefix in a ProductNode of nested paths

  10. def curried: (Node) ⇒ (CompilationState) ⇒ Node

    Definition Classes
    Function2
    Annotations
    @unspecialized()
  11. final def eq(arg0: AnyRef): Boolean

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

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

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  14. final def getClass(): Class[_]

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

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

    Definition Classes
    Any
  17. lazy val logger: SlickLogger

    Attributes
    protected[this]
    Definition Classes
    Logging
  18. val name: String

    The unique name of the phase

    The unique name of the phase

    Definition Classes
    ReconstructProductsPhase
  19. final def ne(arg0: AnyRef): Boolean

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

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

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

    Definition Classes
    AnyRef
  23. def toString(): String

    Definition Classes
    Function2 → AnyRef → Any
  24. def tupled: ((Node, CompilationState)) ⇒ Node

    Definition Classes
    Function2
    Annotations
    @unspecialized()
  25. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from Phase

Inherited from Logging

Inherited from (Node, CompilationState) ⇒ Node

Inherited from AnyRef

Inherited from Any

Ungrouped