untpd
Type members
Classlikes
Short-lived usage in typer, does not need copy/transform/fold infrastructure
Short-lived usage in typer, does not need copy/transform/fold infrastructure
A type tree that gets its type from some other tree's symbol. Enters the
type tree in the References attachment of the from
tree as a side effect.
A type tree that gets its type from some other tree's symbol. Enters the
type tree in the References attachment of the from
tree as a side effect.
An untyped template with a derives clause. Derived parents are added to the end
of the parents
list. derivedCount
keeps track of how many there are.
This representation was chosen because it balances two concerns:
An untyped template with a derives clause. Derived parents are added to the end
of the parents
list. derivedCount
keeps track of how many there are.
This representation was chosen because it balances two concerns:
- maximize overlap between DerivingTemplate and Template for code streamlining
- keep invariant that elements of untyped trees align with source positions
A function type
A function type
A function type with implicit
, erased
, or given
modifiers
A function type with implicit
, erased
, or given
modifiers
An enum to control checking or filtering of patterns in GenFrom trees
An enum to control checking or filtering of patterns in GenFrom trees
An interpolated string
An interpolated string
- Value parameters:
- segments
a list of two element tickets consisting of string literal and argument tree, possibly with a simple string literal as last element of the list
Mod is intended to record syntactic information about modifiers, it's NOT a replacement of FlagSet.
Mod is intended to record syntactic information about modifiers, it's NOT a replacement of FlagSet.
For any query about semantic information, check flags
instead.
- Companion:
- object
Modifiers and annotations for definitions
Modifiers and annotations for definitions
- Value parameters:
- annotations
The annotations preceding the modifiers
- flags
The set flags
- privateWithin
If a private or protected has is followed by a qualifier [q], the name q, "" as a typename otherwise.
mods object name impl
mods object name impl
A polymorphic function type
A polymorphic function type
A typed subtree of an untyped tree needs to be wrapped in a TypedSplice
A typed subtree of an untyped tree needs to be wrapped in a TypedSplice
- Value parameters:
- isExtensionReceiver
The splice was created from the receiver
e
in an extension method calle.f(...)
- owner
The current owner at the time the tree was defined
- Companion:
- object
Fold f
over all tree nodes, in depth-first, prefix order
Fold f
over all tree nodes, in depth-first, prefix order
A function created from a wildcard expression
A function created from a wildcard expression
- Value parameters:
- body
the function body where wildcards are replaced by references to synthetic parameters. This is equivalent to Function, except that forms a special case for the overlapping positions tests.
- placeholderParams
a list of definitions of synthetic parameters.
A block generated by the XML parser, only treated specially by
Positioned#checkPos
A block generated by the XML parser, only treated specially by
Positioned#checkPos
Inherited classlikes
Fold f
over all tree nodes, in depth-first, prefix order
Fold f
over all tree nodes, in depth-first, prefix order
- Inherited from:
- Instance
An extractor for trees of the form id
or id: T
An extractor for trees of the form id
or id: T
- Inherited from:
- UntypedTreeInfo
Fold f
over all tree nodes, in depth-first, prefix order, but don't visit
subtrees where f
returns a different result for the root, i.e. f(x, root) ne x
.
Fold f
over all tree nodes, in depth-first, prefix order, but don't visit
subtrees where f
returns a different result for the root, i.e. f(x, root) ne x
.
- Inherited from:
- Instance
A class for copying trees. The copy methods avoid creating a new tree If all arguments stay the same.
A class for copying trees. The copy methods avoid creating a new tree If all arguments stay the same.
Note: Some of the copy methods take a context. These are exactly those methods that are overridden in TypedTreeCopier so that they selectively retype themselves. Retyping needs a context.
- Inherited from:
- Instance
Inherited types
Info of a variable in a pattern: The named tree and its type
Info of a variable in a pattern: The named tree and its type
- Inherited from:
- UntypedTreeInfo
Value members
Concrete methods
new T(args1)...(args_n)
==>
new T.
new T(args1)...(args_n)
==>
new T.
where Ts
are the class type arguments of T
or its class type alias.
Note: we also keep any type arguments as parts of T
. This is necessary to allow
navigation into these arguments from the IDE, and to do the right thing in
PrepareInlineable.
The context to use when mapping or accumulating over a tree
The context to use when mapping or accumulating over a tree
A new expression with constrictor and possibly type arguments. See
New(tpt, argss)
for details.
A new expression with constrictor and possibly type arguments. See
New(tpt, argss)
for details.
A reference to given definition. If definition is a repeated parameter, the reference will be a repeated argument.
A reference to given definition. If definition is a repeated parameter, the reference will be a repeated argument.
Inherited methods
All term arguments of an application in a single flattened list
All term arguments of an application in a single flattened list
- Inherited from:
- TreeInfo
All type and value parameter symbols of this DefDef
All type and value parameter symbols of this DefDef
- Inherited from:
- TreeInfo
Construct the application $receiver.$method[$targs]($args)
using overloading resolution
to find a matching overload of $method
if necessary.
This is useful when overloading resolution needs to be performed in a phase after typer.
Note that this will not perform any kind of implicit search.
Construct the application $receiver.$method[$targs]($args)
using overloading resolution
to find a matching overload of $method
if necessary.
This is useful when overloading resolution needs to be performed in a phase after typer.
Note that this will not perform any kind of implicit search.
- Value parameters:
- expectedType
An expected type of the application used to guide overloading resolution
- Inherited from:
- Instance
The largest subset of {NoInits, PureInterface} that a trait or class with this body can have as flags.
The largest subset of {NoInits, PureInterface} that a trait or class with this body can have as flags.
- Inherited from:
- UntypedTreeInfo
Does this CaseDef catch everything of a certain Type?
Does this CaseDef catch everything of a certain Type?
- Inherited from:
- TreeInfo
The first constructor definition in stats
The first constructor definition in stats
- Inherited from:
- TreeInfo
Checks whether predicate p
is true for all result parts of this expression,
where we zoom into Ifs, Matches, and Blocks.
Checks whether predicate p
is true for all result parts of this expression,
where we zoom into Ifs, Matches, and Blocks.
- Inherited from:
- TreeInfo
Does this list contain a named argument tree?
Does this list contain a named argument tree?
- Inherited from:
- TreeInfo
For untyped trees, this is just the identity.
For typed trees, a context derived form ctx
that records call
as the
innermost enclosing call for which the inlined version is currently
processed.
For untyped trees, this is just the identity.
For typed trees, a context derived form ctx
that records call
as the
innermost enclosing call for which the inlined version is currently
processed.
- Inherited from:
- Instance
Is tree a backquoted identifier or definition
Is tree a backquoted identifier or definition
- Inherited from:
- TreeInfo
Is tree
an context function or closure, possibly nested in a block?
Is tree
an context function or closure, possibly nested in a block?
- Inherited from:
- UntypedTreeInfo
Is this pattern node a catch-all (wildcard or variable) pattern?
Is this pattern node a catch-all (wildcard or variable) pattern?
- Inherited from:
- TreeInfo
Is tpt a vararg type of the form T* or => T*?
Is tpt a vararg type of the form T* or => T*?
- Inherited from:
- TreeInfo
Is tree a self constructor call this(...)? I.e. a call to a constructor of the same object?
Is tree a self constructor call this(...)? I.e. a call to a constructor of the same object?
- Inherited from:
- TreeInfo
Is this parameter list a using clause?
Is this parameter list a using clause?
- Inherited from:
- TreeInfo
Is the argument a wildcard argument of the form _
or x @ _
?
Is the argument a wildcard argument of the form _
or x @ _
?
- Inherited from:
- TreeInfo
Is this argument node of the form
Is this argument node of the form
- Inherited from:
- TreeInfo
Does this argument list end with an argument of the form
Does this argument list end with an argument of the form
- Inherited from:
- TreeInfo
If tparams
is non-empty, add it to the left paramss
, merging
it with a leading type parameter list of paramss
, if one exists.
If tparams
is non-empty, add it to the left paramss
, merging
it with a leading type parameter list of paramss
, if one exists.
- Inherited from:
- Instance
If path
looks like a language import, Some(name)
where name
is experimental
if that sub-module is imported, and the empty
term name otherwise.
If path
looks like a language import, Some(name)
where name
is experimental
if that sub-module is imported, and the empty
term name otherwise.
- Inherited from:
- TreeInfo
The method part of an application node, possibly enclosed in a block
with only valdefs as statements. the reason for also considering blocks
is that named arguments can transform a call into a block, e.g.
The method part of an application node, possibly enclosed in a block
with only valdefs as statements. the reason for also considering blocks
is that named arguments can transform a call into a block, e.g.
- Inherited from:
- TreeInfo
The number of arguments in an application
The number of arguments in an application
- Inherited from:
- TreeInfo
The largest subset of {NoInits, PureInterface} that a trait or class with these parents can have as flags.
The largest subset of {NoInits, PureInterface} that a trait or class with these parents can have as flags.
- Inherited from:
- TreeInfo
Hook to indicate that a transform of some subtree should be skipped
Hook to indicate that a transform of some subtree should be skipped
- Inherited from:
- Instance
If this is an application, its function part, stripping all Apply nodes (but leaving TypeApply nodes in). Otherwise the tree itself.
If this is an application, its function part, stripping all Apply nodes (but leaving TypeApply nodes in). Otherwise the tree itself.
- Inherited from:
- TreeInfo
If this is a block, its expression part
If this is a block, its expression part
- Inherited from:
- TreeInfo
The context to use when transforming a tree. It ensures that the source is correct, and that the local context is used if that's necessary for transforming the whole tree. TODO: ensure transform is always called with the correct context as argument
The context to use when transforming a tree. It ensures that the source is correct, and that the local context is used if that's necessary for transforming the whole tree. TODO: ensure transform is always called with the correct context as argument
- See also:
- Inherited from:
- Instance
The underlying pattern ignoring any bindings
The underlying pattern ignoring any bindings
- Inherited from:
- TreeInfo
The underlying tree when stripping any TypedSplice or Parens nodes
The underlying tree when stripping any TypedSplice or Parens nodes
- Definition Classes
- Inherited from:
- UntypedTreeInfo
Concrete fields
Property key for contextual Apply trees of the form fn given arg
Property key for contextual Apply trees of the form fn given arg
Property key for TypeTrees marked with TypeRefOfSym or InfoOfSym which contains the symbol of the original tree from which this TypeTree is derived.
Property key for TypeTrees marked with TypeRefOfSym or InfoOfSym which contains the symbol of the original tree from which this TypeTree is derived.
Property key containing TypeTrees whose type is computed from the symbol in this type. These type trees have marker trees TypeRefOfSym or InfoOfSym as their originals.
Property key containing TypeTrees whose type is computed from the symbol in this type. These type trees have marker trees TypeRefOfSym or InfoOfSym as their originals.