Alternatives of patterns, eliminated by explicitouter, except for occurrences in encoded Switch stmt (=remaining Match(CaseDef(.
A tree that has an annotation attached to it.
Applied type <tpt> [ <args> ], eliminated by RefCheck
Value application
Dynamic value application.
Array of expressions, needs to be translated in backend,
Assignment
Bind of a variable to a rhs pattern, eliminated by explicitouter
Block of expressions (semicolon separated expressions)
Case clause in a pattern match, eliminated during explicitouter (except for occurrences in switch statements)
A class definition.
Commented expression
Intersection type <parent1> with .
A method or macro definition.
A tree which defines a symbol-carrying entity.
A tree for a function expression.
Anonymous function, eliminated by analyzer
Common base class for Apply and TypeApply.
Identifier <name>
Conditional expression
A common base class for class and object definitions.
Import clause
Import selector
Infix application
Infix extraction, for example case x :: rest
A labelled expression.
Literal
- Pattern matching expression (before explicitouter)
Common base class for all member definitions: types, classes, objects, packages, vals and vars, defs.
An object definition, e.
Object instantiation One should always use factory method below to build a user level new.
A packaging, such as package pid { stats }
A tree which references a symbol-carrying entity.
Return expression
Designator <qualifier> .
Type selection <qualifier> # <name>, eliminated by RefCheck
Singleton type, eliminated by RefCheck
Repetition of pattern, eliminated by explicitouter
Super reference, qual = corresponding this reference
A tree with a mutable symbol field, initialized to NoSymbol.
Instantiation template of a class or trait
A tree for a term.
Self reference
Throw expression
Tree is the basis for scala's abstract syntax.
A tree for a type.
Explicit type application.
An abstract type, a type parameter, or a type alias.
A synthetic tree holding an arbitrary type.
Type annotation, eliminated by explicit outer
A constant value definition (this includes vars as well, which differ from vals only in having the MUTABLE flag set in their Modifiers.
A common base class for ValDefs and DefDefs.
Block factory that flattens directly nested blocks.
casedef shorthand
The empty tree
A TypeDef node which defines abstract type or type parameter for given sym
the class symbol
the implementation template
0-1 argument list new, based on a symbol.
Factory method for object creation new tpt(args_1)...(args_n)
A New(t, as) is expanded to: (new t).<init>(as)
A TypeDef node which defines given sym with given tight hand side rhs.