ScriptParsers
dotty.tools.dotc.parsing.ScriptParsers$
object ScriptParsers
Performs the following context-free rewritings:
- Places all pattern variables in Bind nodes. In a pattern, for
identifiers
x
:
x => x @ _ x:T => x @ (_ : T)
- Removes pattern definitions (PatDef's) as follows: If pattern is a simple (typed) identifier:
val x = e ==> val x = e val x: T = e ==> val x: T = e
if there are no variables in pattern
val p = e ==> e match (case p => ())
if there is exactly one variable in pattern
val x_1 = e match (case p => (x_1))
if there is more than one variable in pattern
val p = e ==> private synthetic val t$ = e match (case p => (x_1, ..., x_N)) val x_1 = t$._1 ... val x_N = t$._N
- Removes function types as follows:
(argtpes) => restpe ==> scala.Function_n[argtpes, restpe]
- Wraps naked case definitions in a match as follows:
{ cases } ==> (x => x.match {cases}), except when already argument to match
Attributes
- Graph
- Supertypes
- Self type
- ScriptParsers.type