c

slick.compiler

ExpandSums

class ExpandSums extends Phase

Expand sum types and their catamorphisms to equivalent product type operations.

Source
ExpandSums.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ExpandSums
  2. Phase
  3. Logging
  4. Function1
  5. AnyRef
  6. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new ExpandSums()

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. val Disc1: LiteralNode
  2. val DiscNone: LiteralNode
  3. def andThen[A](g: (CompilerState) => A): (CompilerState) => A
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  4. def apply(state: CompilerState): CompilerState

    Run the phase

    Run the phase

    Definition Classes
    ExpandSumsPhase → Function1
  5. def buildMultiColumnNone(tpe: Type): Node

    Create a Node representing a structure of null values of the given Type

  6. def collectDiscriminatorCandidates(n: Node): Set[(TypeSymbol, List[TermSymbol])]

    Collect discriminator candidate fields in a predicate.

    Collect discriminator candidate fields in a predicate. These are all paths below an OptionApply, which indicates their future use under a discriminator guard.

  7. def compose[A](g: (A) => CompilerState): (A) => CompilerState
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  8. def expandConditionals(n: Node): Node

    Expand multi-column conditional expressions and SilentCasts.

    Expand multi-column conditional expressions and SilentCasts. Single-column conditionals involving NULL values are optimized away where possible.

  9. def expandSums(n: Node): Node
  10. def fuse(n: Node): Node

    Fuse unnecessary Option operations

  11. val name: String

    The unique name of the phase

    The unique name of the phase

    Definition Classes
    ExpandSumsPhase
  12. def silentCast(tpe: Type, n: Node): Node

    Create a SilentCast call unless the type already matches

  13. def toOptionColumns(tpe: Type): Type

    Strip nominal types and convert all atomic types to OptionTypes

  14. def toString(): String
    Definition Classes
    Function1 → AnyRef → Any
  15. def trType(tpe: Type): Type

    Perform the sum expansion on a Type

  16. def translateJoin(bind: Bind, discCandidates: Set[(TypeSymbol, List[TermSymbol])]): Bind

    Translate an Option-extended left outer, right outer or full outer join

  17. object PathOnTypeSymbol