Trees
Type members
Classlikes
case pattern if guard => body; only appears as child of a Match and Try
case pattern if guard => body; only appears as child of a Match and Try
mods def nametparams...(vparams_n): tpt = rhs
mods def nametparams...(vparams_n): tpt = rhs
A free identifier, that has no defining symbol.
A free identifier, that has no defining symbol.
This seems to always be a wildcard.
An identifier appearing in an import
clause; it has no type.
An identifier appearing in an import
clause; it has no type.
A tree representing inlined code.
A tree representing inlined code.
- Value Params
- bindings
Bindings for proxies to be used in the inlined code The full inlined code is equivalent to { bindings; expr }
- caller
The toplevel class from which the call was inlined.
- expr
The inlined tree, minus bindings.
- Value Params
- meth
A reference to the method.
- tpt
Not an EmptyTree only if the lambda's type is a SAMtype rather than a function type.
constr extends parents { self => body }
constr extends parents { self => body }
holder for details of a Class definition
- Value Params
- classParent
-- the parent whose constructor is called. If the template defines a class, this is its only class parent.
- parents
trait parents of the template and the class parent if the template defines a trait.
mods class name template or mods trait name template or mods type name = rhs or mods type name >: lo <: hi, if rhs = TypeBoundsTree(lo, hi) or mods type name >: lo <: hi = rhs if rhs = TypeBoundsTree(lo, hi, alias) and opaque in mods
mods class name template or mods trait name template or mods type name = rhs or mods type name >: lo <: hi, if rhs = TypeBoundsTree(lo, hi) or mods type name >: lo <: hi = rhs if rhs = TypeBoundsTree(lo, hi, alias) and opaque in mods
A type member has a type tree rhs if the member is defined by the user, or typebounds if it's synthetic
A type member has a type tree rhs if the member is defined by the user, or typebounds if it's synthetic
The bounds are a type tree if the method is defined by the user and bounds-only if it's synthetic
The bounds are a type tree if the method is defined by the user and bounds-only if it's synthetic
extractor(patterns)
in a pattern:
extractor(patterns)
in a pattern:
- Value Params
- fun
is
extractor.unapply
(or, for backwards compatibility,extractor.unapplySeq
) possibly with type parameters- implicits
Any implicit parameters passed to the unapply after the selector
- patterns
The argument patterns in the pattern match. It is typed with same type as first
fun
argument Given a match selectorsel
a pattern UnApply(fun, implicits, patterns) is roughly translated as follows val result = fun(sel)(implicits) if (result.isDefined) "match patterns against result"