Trees
Members list
Type members
Classlikes
tree_1 | ... | tree_n
tree_1 | ... | tree_n
Attributes
- Supertypes
-
trait Serializabletrait PatternTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
arg @annot
arg @annot
Attributes
- Supertypes
-
trait Serializableclass ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
tpt[args]
tpt[args]
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
fun(args)
fun(args)
Attributes
- Supertypes
-
trait Serializableclass GenericApply[T]trait TermTree[T]class ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
The kind of application
The kind of application
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
name = arg, outside a parameter list
name = arg, outside a parameter list
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
name @ body
name @ body
Attributes
- Supertypes
-
trait Serializabletrait PatternTree[T]class NamedDefTree[T]trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
{ stats; expr }
{ stats; expr }
Attributes
- Supertypes
-
trait Serializableclass Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class XMLBlock
=> T
=> T
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
case pat if guard => body
case pat if guard => body
Attributes
- Supertypes
-
trait Serializableclass Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
A closure with an environment and a reference to a method.
A closure with an environment and a reference to a method.
Value parameters
- env
-
The captured parameters of the closure
- meth
-
A ref tree that refers to the method of the closure. The first (env.length) parameters of that method are filled with env values.
- tpt
-
Either EmptyTree or a TypeTree. If tpt is EmptyTree the type of the closure is a function type, otherwise it is the type given in
tpt
, which must be a SAM type.
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
mods def nametparams...(vparams_n): tpt = rhs
mods def nametparams...(vparams_n): tpt = rhs
Attributes
- Supertypes
-
trait Serializableclass ValOrDefDef[T]trait WithLazyFieldsclass MemberDef[T]class NamedDefTree[T]trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Tree defines a new symbol
Tree defines a new symbol
Attributes
- Supertypes
-
class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class NamedDefTree[T]class Bind[T]class MemberDef[T]class TypeDef[T]class ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]trait ValOrTypeDef[T]class ModuleDefclass Template[T]class DerivingTemplateShow all
Tree's denotation can be derived from its type
Tree's denotation can be derived from its type
Attributes
- Supertypes
-
class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
trait DefTree[T]class NamedDefTree[T]class Bind[T]class MemberDef[T]class TypeDef[T]class ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]trait ValOrTypeDef[T]class ModuleDefclass Template[T]class DerivingTemplateclass ImportOrExport[T]class Export[T]class Import[T]class NameTree[T]class Labeled[T]class RefTree[T]class Ident[T]class SearchFailureIdent[T]object EmptyTypeIdentclass Select[T]class SelectWithSig[T]class SingletonTypeTree[T]class This[T]class TypeTree[T]class InferredTypeTree[T]class DerivedTypeTreeclass DerivedFromParamTreeclass SetterParamTreeclass TermRefTreeclass TypeRefTreeShow all
Attributes
- Supertypes
-
class Thicket[Nothing]trait Serializabletrait WithoutTypeOrPos[Nothing]class Tree[Nothing]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait WithoutTypeOrPos[T]class ValDef[T]trait Serializabletrait ValOrTypeDef[T]class ValOrDefDef[T]trait WithLazyFieldsclass MemberDef[T]class NamedDefTree[T]trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
export expr.selectors where a selector is either an untyped Ident
, name
or an untyped thicket consisting of name
and rename
.
export expr.selectors where a selector is either an untyped Ident
, name
or an untyped thicket consisting of name
and rename
.
Attributes
- Supertypes
-
trait Serializableclass ImportOrExport[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Companion
- object
- Supertypes
- Known subtypes
Attributes
- Companion
- class
- Supertypes
- Self type
-
GenericApply.type
Tree that replaces a level 1 splices in pickled (level 0) quotes. It is only used when pickling quotes (will never be in a TASTy file).
Tree that replaces a level 1 splices in pickled (level 0) quotes. It is only used when pickling quotes (will never be in a TASTy file).
Value parameters
- args
-
The arguments of the splice to compute its content
- content
-
Lambda that computes the content of the hole. This tree is empty when in a quote pickle.
- idx
-
The index of the hole in it's enclosing level 0 quote.
- isTerm
-
If this hole is a term, otherwise it is a type hole.
Attributes
- Supertypes
-
trait Serializableclass Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
name
name
Attributes
- Supertypes
-
trait Serializableclass RefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class SearchFailureIdent[T]object EmptyTypeIdent
if cond then thenp else elsep
if cond then thenp else elsep
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class InlineIf[T]
import expr.selectors where a selector is either an untyped Ident
, name
or an untyped thicket consisting of name
and rename
.
import expr.selectors where a selector is either an untyped Ident
, name
or an untyped thicket consisting of name
and rename
.
Attributes
- Supertypes
-
trait Serializableclass ImportOrExport[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
A type tree whose type is inferred. These trees appear in two contexts
A type tree whose type is inferred. These trees appear in two contexts
- as an argument of a TypeApply. In that case its type is always a TypeVar
- as a (result-)type of an inferred ValDef or DefDef. Every TypeVar is created as the type of one InferredTypeTree.
Attributes
- Supertypes
-
class TypeTree[T]trait Serializabletrait TypTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
class If[T]trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
class Match[T]trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
A tree representing inlined code.
A tree representing inlined code.
Value parameters
- bindings
-
Bindings for proxies to be used in the inlined code
- call
-
Info about the original call that was inlined Until PostTyper, this is the full call, afterwards only a reference to the toplevel class from which the call was inlined.
- expansion
-
The inlined tree, minus bindings. The full inlined code is equivalent to { bindings; expansion } The reason to keep
bindings
separate is because they are typed in a different context:bindings
represent the arguments to the inlined call, whereasexpansion
represents the body of the inlined function.
Attributes
- Supertypes
-
trait Serializableclass Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Array(elems)
Array(elems)
Attributes
- Supertypes
-
class SeqLiteral[T]trait Serializableclass Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
label[tpt]: { expr }
label[tpt]: { expr }
Attributes
- Supertypes
-
trait Serializableclass NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
[typeparams] -> tpt
[typeparams] -> tpt
Note: the type of such a tree is not necessarily a HKTypeLambda
, it can also be a TypeBounds
where the upper bound is an HKTypeLambda
, and the lower bound is either a reference to Nothing
or an HKTypeLambda
, this happens because these trees are typed by HKTypeLambda#fromParams
which makes sure to move bounds outside of the type lambda itself to simplify their handling in the compiler.
You may ask: why not normalize the trees too? That way,
LambdaTypeTree(X, TypeBoundsTree(A, B))
would become,
TypeBoundsTree(LambdaTypeTree(X, A), LambdaTypeTree(X, B))
which would maintain consistency between a tree and its type. The problem with this definition is that the same tree X
appears twice, therefore we'd have to create two symbols for it which makes it harder to relate the source code written by the user with the trees used by the compiler (for example, to make "find all references" work in the IDE).
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
A base trait for lazy tree fields. These can be instantiated with Lazy instances which can delay tree construction until the field is first demanded.
A base trait for lazy tree fields. These can be instantiated with Lazy instances which can delay tree construction until the field is first demanded.
Attributes
- Supertypes
- Known subtypes
-
class LazyReader[T]
const
const
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
selector match { cases }
selector match { cases }
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class InlineMatch[T]
[bound] selector match { cases }
[bound] selector match { cases }
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Tree defines a new symbol and carries modifiers. The position of a MemberDef contains only the defined identifier or pattern. The envelope of a MemberDef contains the whole definition and has its point on the opening keyword (or the next token after that if keyword is missing).
Tree defines a new symbol and carries modifiers. The position of a MemberDef contains only the defined identifier or pattern. The envelope of a MemberDef contains the whole definition and has its point on the opening keyword (or the next token after that if keyword is missing).
Attributes
- Supertypes
-
class NamedDefTree[T]trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class TypeDef[T]class ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]trait ValOrTypeDef[T]class ModuleDefShow all
Tree has a name
Tree has a name
Attributes
- Supertypes
-
class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class Labeled[T]class NamedDefTree[T]class Bind[T]class MemberDef[T]class TypeDef[T]class ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]trait ValOrTypeDef[T]class ModuleDefclass RefTree[T]class Ident[T]class SearchFailureIdent[T]object EmptyTypeIdentclass Select[T]class SelectWithSig[T]Show all
name = arg, in a parameter list
name = arg, in a parameter list
Attributes
- Supertypes
-
trait Serializableclass Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class Bind[T]class MemberDef[T]class TypeDef[T]class ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]trait ValOrTypeDef[T]class ModuleDefShow all
new tpt, but no constructor call
new tpt, but no constructor call
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
package pid { stats }
package pid { stats }
Attributes
- Supertypes
-
trait Serializabletrait WithEndMarker[T]class ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Instances of this class are trees which are not terms but are legal parts of patterns.
Instances of this class are trees which are not terms but are legal parts of patterns.
Attributes
- Supertypes
-
class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
Tree's denot/isType/isTerm properties come from a subtree identified by forwardTo
.
Tree's denot/isType/isTerm properties come from a subtree identified by forwardTo
.
Attributes
- Supertypes
-
class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class Annotated[T]class AppliedTypeTree[T]class GenericApply[T]class Apply[T]class TypeApply[T]class PackageDef[T]class RefinedTypeTree[T]class Super[T]class Typed[T]class UnApply[T]class Parensclass TypedSpliceShow all
A tree representing a quote '{ body }
or '[ body ]
. Quote
s are created by the Parser
. In typer they can be typed as a Quote
with a known tpt
or desugared and typed as a quote pattern.
A tree representing a quote '{ body }
or '[ body ]
. Quote
s are created by the Parser
. In typer they can be typed as a Quote
with a known tpt
or desugared and typed as a quote pattern.
Quotes
are checked and transformed in the staging
, splicing
and pickleQuotes
phases. After pickleQuotes
phase, the only quotes that exist are in inline
methods. These are dropped when we remove the inline method implementations.
Type quotes '[body]
from the parser are typed into QuotePattern
s when type checking. TASTy files will not contain type quotes. Type quotes are used again in the staging
phase to represent the reification of Type.of[T]]
.
Type tags tags
are always empty before the staging
phase. Tags for stage inconsistent types are added in the staging
phase to level 0 quotes. Tags for types that refer to definitions in an outer quote are added in the splicing
phase
Value parameters
- body
-
The tree that was quoted
- tags
-
Term references to instances of
Type[T]
forT
s that are used in the quote
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
A tree representing a quote pattern '{ type binding1; ...; body }
or '[ type binding1; ...; body ]
. QuotePattern
s are created the type checker when typing an untpd.Quote
in a pattern context.
A tree representing a quote pattern '{ type binding1; ...; body }
or '[ type binding1; ...; body ]
. QuotePattern
s are created the type checker when typing an untpd.Quote
in a pattern context.
QuotePattern
s are checked are encoded into unapply
s in the staging
phase.
The bindings
contain the list of quote pattern type variable definitions (Bind
s) in the oreder in which they are defined in the source.
Value parameters
- bindings
-
Type variable definitions (
Bind
tree) - body
-
Quoted pattern (without type variable definitions)
- quotes
-
A reference to the given
Quotes
instance in scope
Attributes
- Supertypes
-
trait Serializabletrait PatternTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Tree refers by name to a denotation
Tree refers by name to a denotation
Attributes
- Supertypes
-
class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class Ident[T]class SearchFailureIdent[T]object EmptyTypeIdentclass Select[T]class SelectWithSig[T]
tpt { refinements }
tpt { refinements }
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
return expr where from
refers to the method or label from which the return takes place After program transformations this is not necessarily the enclosing method, because closures can intervene.
return expr where from
refers to the method or label from which the return takes place After program transformations this is not necessarily the enclosing method, because closures can intervene.
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
class Ident[T]trait Serializableclass RefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
qualifier.name, or qualifier#name, if qualifier is a type
qualifier.name, or qualifier#name, if qualifier is a type
Attributes
- Supertypes
-
trait Serializableclass RefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class SelectWithSig[T]
Attributes
- Supertypes
-
class Select[T]trait Serializableclass RefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Seq(elems)
Seq(elems)
Value parameters
- tpt
-
The element type of the sequence.
Attributes
- Supertypes
-
trait Serializableclass Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class JavaSeqLiteral[T]
ref.type
ref.type
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
A tree representing a splice ${ expr }
A tree representing a splice ${ expr }
Splice
s are created by the Parser
. In typer they can be typed as a Splice
with a known tpt
or desugared and typed as a quote pattern holes.
Splice
are checked and transformed in the staging
and splicing
phases. After splicing
phase, the only splices that exist are in inline
methods. These are dropped when we remove the inline method implementations.
Value parameters
- expr
-
The tree that was spliced
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
A tree representing a pattern splice ${ pattern }
, $ident
or $ident(args*)
in a quote pattern.
A tree representing a pattern splice ${ pattern }
, $ident
or $ident(args*)
in a quote pattern.
Parser will only create ${ pattern }
and $ident
, hence they will not have args. While typing, the $ident(args*)
the args are identified and desugared into a SplicePattern
containing them.
SplicePattern
can only be contained within a QuotePattern
.
Value parameters
- args
-
The arguments of the splice (the HOAS arguments)
- body
-
The tree that was spliced
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
C.super[mix], where qual = C.this
C.super[mix], where qual = C.this
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
extends parents { self => body }
extends parents { self => body }
Value parameters
- preParentsOrDerived
-
A list of parents followed by a list of derived classes, if this is of class untpd.DerivingTemplate. Typed templates only have parents.
Attributes
- Supertypes
-
trait Serializabletrait WithLazyFieldstrait DefTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class DerivingTemplate
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Instances of this class are trees for which isTerm is definitely true. Note that some trees have isTerm = true without being TermTrees (e.g. Ident, Annotated)
Instances of this class are trees for which isTerm is definitely true. Note that some trees have isTerm = true without being TermTrees (e.g. Ident, Annotated)
Attributes
- Supertypes
-
class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class Assign[T]class Closure[T]class GenericApply[T]class Apply[T]class TypeApply[T]class If[T]class InlineIf[T]class Literal[T]class Match[T]class InlineMatch[T]class New[T]class Quote[T]class Return[T]class Splice[T]class SplicePattern[T]class Super[T]class This[T]class Try[T]class Typed[T]class WhileDo[T]Show all
Temporary class that results from translation of ModuleDefs (and possibly other statements). The contained trees will be integrated when transformed with a transform(List[Tree])
call.
Temporary class that results from translation of ModuleDefs (and possibly other statements). The contained trees will be integrated when transformed with a transform(List[Tree])
call.
Attributes
- Supertypes
-
trait Serializabletrait WithoutTypeOrPos[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class EmptyTree[T]
qual.this
qual.this
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Trees take a parameter indicating what the type of their tpe
field is. Two choices: Type
or Untyped
. Untyped trees have type Tree[Untyped]
.
Trees take a parameter indicating what the type of their tpe
field is. Two choices: Type
or Untyped
. Untyped trees have type Tree[Untyped]
.
Tree typing uses a copy-on-write implementation:
- You can never observe a
tpe
which isnull
(throws an exception) - So when creating a typed tree with
withType
we can re-use the existing tree transparently, assigning itstpe
field. - It is impossible to embed untyped trees in typed ones.
- Typed trees can be embedded in untyped ones provided they are rooted in a TypedSplice node.
- Type checking an untyped tree should remove all embedded
TypedSplice
nodes.
Attributes
- Supertypes
-
trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class Block[T]class XMLBlockclass CaseDef[T]class DenotingTree[T]trait DefTree[T]class NamedDefTree[T]class Bind[T]class MemberDef[T]class TypeDef[T]class ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]trait ValOrTypeDef[T]class ModuleDefclass Template[T]class DerivingTemplateclass ImportOrExport[T]class Export[T]class Import[T]class NameTree[T]class Labeled[T]class RefTree[T]class Ident[T]class SearchFailureIdent[T]object EmptyTypeIdentclass Select[T]class SelectWithSig[T]class SingletonTypeTree[T]class This[T]class TypeTree[T]class InferredTypeTree[T]class DerivedTypeTreeclass DerivedFromParamTreeclass SetterParamTreeclass TermRefTreeclass TypeRefTreeclass Hole[T]class Inlined[T]class Literal[T]class NamedArg[T]class New[T]trait PatternTree[T]class Alternative[T]class QuotePattern[T]class UnApply[T]class ProxyTree[T]class Annotated[T]class AppliedTypeTree[T]class GenericApply[T]class Apply[T]class TypeApply[T]class PackageDef[T]class RefinedTypeTree[T]class Super[T]class Typed[T]class Parensclass TypedSpliceclass SeqLiteral[T]class JavaSeqLiteral[T]trait TermTree[T]class Assign[T]class Closure[T]class If[T]class InlineIf[T]class Match[T]class InlineMatch[T]class Quote[T]class Return[T]class Splice[T]class SplicePattern[T]class Try[T]class WhileDo[T]class Thicket[T]class EmptyTree[T]trait TypTree[T]class ByNameTypeTree[T]class LambdaTypeTree[T]class MatchTypeTree[T]class TermLambdaTypeTree[T]class TypeBoundsTree[T]trait WithoutTypeOrPos[T]class ExtMethodsclass Functionclass FunctionWithModsclass WildcardFunctionclass GenAliasclass GenFromclass ImportSelectorclass InLambdaTypeTreeclass Intoclass MacroTreeclass OpTreeclass InfixOpclass PostfixOpclass PrefixOpclass PolyFunctionclass TupleShow all
try block catch cases finally finalizer
try block catch cases finally finalizer
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Instances of this class are trees for which isType is definitely true. Note that some trees have isType = true without being TypTrees (e.g. Ident, Annotated)
Instances of this class are trees for which isType is definitely true. Note that some trees have isType = true without being TypTrees (e.g. Ident, Annotated)
Attributes
- Supertypes
-
class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class AppliedTypeTree[T]class ByNameTypeTree[T]class LambdaTypeTree[T]class MatchTypeTree[T]class RefinedTypeTree[T]class SingletonTypeTree[T]class TermLambdaTypeTree[T]class TypeBoundsTree[T]class TypeTree[T]class InferredTypeTree[T]class DerivedTypeTreeclass DerivedFromParamTreeclass SetterParamTreeclass TermRefTreeclass TypeRefTreeShow all
fun[args]
fun[args]
Attributes
- Supertypes
-
trait Serializableclass GenericApply[T]trait TermTree[T]class ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
: lo <: hi : lo <: hi = alias for RHS of bounded opaque type
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
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
Attributes
- Supertypes
-
trait Serializabletrait ValOrTypeDef[T]class MemberDef[T]class NamedDefTree[T]trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
A type tree that represents an existing or inferred type
A type tree that represents an existing or inferred type
Attributes
- Supertypes
-
trait Serializabletrait TypTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class InferredTypeTree[T]class DerivedTypeTreeclass DerivedFromParamTreeclass SetterParamTreeclass TermRefTreeclass TypeRefTreeShow all
expr : tpt
expr : tpt
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
The typed translation of extractor(patterns)
in a pattern. The translation has the following components:
The typed translation of extractor(patterns)
in a pattern. The translation has the following components:
Value parameters
- 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"
Attributes
- Supertypes
-
trait Serializabletrait PatternTree[T]class ProxyTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
class RuntimeExceptionclass Exceptionclass Throwabletrait Serializableclass Objecttrait Matchableclass AnyShow all
mods val name: tpt = rhs
mods val name: tpt = rhs
Attributes
- Supertypes
-
trait Serializabletrait ValOrTypeDef[T]class ValOrDefDef[T]trait WithLazyFieldsclass MemberDef[T]class NamedDefTree[T]trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class EmptyValDef[T]
A ValDef or DefDef tree
A ValDef or DefDef tree
Attributes
- Supertypes
-
trait WithLazyFieldsclass MemberDef[T]class NamedDefTree[T]trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
Attributes
- Supertypes
-
class MemberDef[T]class NamedDefTree[T]trait WithEndMarker[T]trait DefTree[T]class NameTree[T]class DenotingTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
while (cond) { body }
while (cond) { body }
Attributes
- Supertypes
-
trait Serializabletrait TermTree[T]class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
Attributes
- Companion
- trait
- Supertypes
- Self type
-
WithEndMarker.type
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
class NamedDefTree[T]class Bind[T]class MemberDef[T]class TypeDef[T]class ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]trait ValOrTypeDef[T]class ModuleDefclass PackageDef[T]Show all
- Self type
-
A tree that can have a lazy fields. Such fields are variables of type T | Lazy[T]
, for some tyope T
.
A tree that can have a lazy fields. Such fields are variables of type T | Lazy[T]
, for some tyope T
.
Attributes
- Supertypes
- Known subtypes
-
class Template[T]class DerivingTemplateclass ValOrDefDef[T]class DefDef[T]class ValDef[T]class EmptyValDef[T]Show all
Attributes
- Supertypes
-
class Tree[T]trait Showabletrait Containertrait LinkSourceclass Positionedtrait Cloneabletrait Producttrait Equalstrait SrcPosclass Objecttrait Matchableclass AnyShow all
- Known subtypes
Value members
Concrete fields
Property key for backquoted identifiers and definitions
Property key for backquoted identifiers and definitions
Attributes
Property key for trees with documentation strings attached
Property key for trees with documentation strings attached
Attributes
The total number of created tree nodes, maintained if Stats.enabled
The total number of created tree nodes, maintained if Stats.enabled