class FlattenProjections extends Phase
Flatten all Pure
node contents into a single StructNode
.
After this phase, all Pure
nodes produce a StructNode
of primitive fields. As a
side-effect, nested NominalTypes are eliminated.
- Source
- FlattenProjections.scala
- Alphabetic
- By Inheritance
- FlattenProjections
- Phase
- Logging
- Function1
- AnyRef
- Any
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new FlattenProjections()
Type Members
Value Members
- def andThen[A](g: (CompilerState) => A): (CompilerState) => A
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- def apply(state: CompilerState): CompilerState
Run the phase
Run the phase
- Definition Classes
- FlattenProjections → Phase → Function1
- def compose[A](g: (A) => CompilerState): (A) => CompilerState
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- def flattenProjection(n: Node, collapse: Boolean): (StructNode, Map[List[TermSymbol], TermSymbol])
Flatten a projection into a StructNode.
Flatten a projection into a StructNode.
- collapse
If set to true, duplicate definitions are combined into a single one. This must not be used in the top-level Bind because the definitions have to match the top-level type (which is used later in
createResultSetMapping
). Any duplicates there will be eliminated inhoistClientOps
. It is also disabled directly under a Union because the columns on both sides have to match up.
- val name: String
The unique name of the phase
The unique name of the phase
- Definition Classes
- FlattenProjections → Phase
- def splitPath(n: PathElement, candidates: Set[TypeSymbol]): Option[(PathElement, List[TermSymbol], TypeSymbol)]
Split a path into the shortest part with a NominalType and the rest on top of it.
Split a path into the shortest part with a NominalType and the rest on top of it. Returns
None
if there is no NominalType with one of the candidate TypeSymbols in the path, otherwise returnsSome(base, rest, tsym)
wheretsym
is the symbol that was found andbase
is the Node in the path which has a NominalType of that symbol.rest
is a (possibly empty) path of symbols on top ofbase
. - def toString(): String
- Definition Classes
- Function1 → AnyRef → Any
edit this text on github
Scala Language-Integrated Connection Kit
This is the API documentation for the Slick database library. It should be used as an additional resource to the user manual.
Further documentation for Slick can be found on the documentation pages.
To the slick package list...