c

slick.compiler

AssignUniqueSymbols

class AssignUniqueSymbols extends Phase

Ensure that all symbol definitions in a tree are unique. The same symbol can initially occur in multiple sub-trees when some part of a query is reused multiple times. This phase assigns new, uniqe symbols, so that later phases do not have to take scopes into account for identifying the source of a symbol. The rewriting is performed for both, term symbols and type symbols.

The phase state is a collection of flags depending on the presence or absence of certain node types in the AST. This information can be used to selectively skip later compiler phases when it is already known that there is nothing for them to translate.

Source
AssignUniqueSymbols.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AssignUniqueSymbols
  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 AssignUniqueSymbols()

Type Members

  1. type State = UsedFeatures

    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
    AssignUniqueSymbolsPhase

Value Members

  1. def andThen[A](g: (CompilerState) => A): (CompilerState) => A
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  2. def apply(state: CompilerState): CompilerState

    Run the phase

    Run the phase

    Definition Classes
    AssignUniqueSymbolsPhase → Function1
  3. def compose[A](g: (A) => CompilerState): (A) => CompilerState
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  4. def hasNominalType(t: Type): Boolean
  5. val name: String

    The unique name of the phase

    The unique name of the phase

    Definition Classes
    AssignUniqueSymbolsPhase
  6. def toString(): String
    Definition Classes
    Function1 → AnyRef → Any