Traverse pattern and collect all variable names with their types in buffer The variables keep their positions; whereas the pattern is converted to be synthetic for all nodes that contain a variable position.
Append implicit parameter section if contextBounds' nonempty
Append implicit parameter section if contextBounds' nonempty
Create tree for a pattern alternative
Create tree for a pattern alternative
Create a tree representing an assignment <lhs = rhs>
Create a tree representing an assignment <lhs = rhs>
Create tree representing (unencoded) binary operation expression or pattern.
Create tree representing (unencoded) binary operation expression or pattern.
Create block of statements stats'
Create block of statements stats'
Create tree for case definition <case pat if guard => rhs>
Create tree for case definition <case pat if guard => rhs>
Creates tree representing: { case x: Throwable => val catchFn = catchExpr if (catchFn isDefinedAt x) catchFn(x) else throw x }
Creates tree representing: { case x: Throwable => val catchFn = catchExpr if (catchFn isDefinedAt x) catchFn(x) else throw x }
Create tree representing a do-while loop
Create tree representing a do-while loop
Create tree for for-do comprehension <for (enums) body>
Create tree for for-do comprehension <for (enums) body>
Create tree for for-yield comprehension <for (enums) yield body>
Create tree for for-yield comprehension <for (enums) yield body>
Create a tree representing the function type (argtpes) => restpe
Create a tree representing the function type (argtpes) => restpe
Create tree for for-comprehension generator <val pat0 <- rhs0>
Create tree for for-comprehension generator <val pat0 <- rhs0>
A type tree corresponding to (possibly unary) intersection type
A type tree corresponding to (possibly unary) intersection type
Create tree for a lifted expression XX-LIFTING
Create tree for a lifted expression XX-LIFTING
Create positioned tree representing an object creation <new parents { stats }
Create positioned tree representing an object creation <new parents { stats }
the position of the new
the position of the anonymous class starting with parents
Create tree for pattern definition <mods val pat0 = rhs>
Create tree for pattern definition <mods val pat0 = rhs>
Create tree for pattern definition <val pat0 = rhs>
Create tree for pattern definition <val pat0 = rhs>
For debugging only.
For debugging only. Desugar a match statement like so: val x = scrutinee x match { case case1 => ... case _ => x match { case case2 => ... case _ => x match ... } }
This way there are never transitions between nontrivial casedefs. Of course many things break: exhaustiveness and unreachable checking do not work, no switches will be generated, etc.
Create visitor <x => x match cases>
Create visitor <x => x match cases>
Create visitor <x => x match cases>
Create visitor <x => x match cases>
Create tree representing a while loop
Create tree representing a while loop