Documented definition, eliminated by analyzer
Derived value class injection (equivalent to: new C(arg) after easure); only used during erasure The class C is stored as the symbol of the tree node.
A locator for trees with given positions.
Only used during parsing
Array selection <qualifier> .
Substitute clazz.
Substitute symbols in from
with symbols in to
.
emitted by typer, eliminated by refchecks
Block factory that flattens directly nested blocks.
Block factory that flattens directly nested blocks.
casedef shorthand
casedef shorthand
Construct class definition with given class symbol, value parameters, supercall arguments and template body.
Construct class definition with given class symbol, value parameters, supercall arguments and template body.
the class symbol
the modifiers for the class constructor, i.e. as in class C private (...)
the value parameters -- if they have symbols they
should be owned by sym
the supercall arguments
the template statements without primary constructor and value parameter fields.
the class symbol
the implementation template
the class symbol
the implementation template
0-1 argument list new, based on a type.
0-1 argument list new, based on a type.
Factory method for object creation new tpt(args_1)...(args_n)
A New(t, as)
is expanded to: (new t).<init>(as)
Factory method for object creation new tpt(args_1)...(args_n)
A New(t, as)
is expanded to: (new t).<init>(as)
Generates a template with constructor corresponding to
Generates a template with constructor corresponding to
constrmods (vparams1_) ... (vparams_n) preSuper { presupers } extends superclass(args_1) ... (args_n) with mixins { self => body }
This gets translated to
extends superclass with mixins { self => presupers' // presupers without rhs vparamss // abstract fields corresponding to value parameters def <init>(vparamss) { presupers super.<init>(args) } body }
A TypeDef node which defines abstract type or type parameter for given sym
A TypeDef node which defines abstract type or type parameter for given sym
A TypeDef node which defines given sym
with given tight hand side rhs
.
A TypeDef node which defines given sym
with given tight hand side rhs
.
Position a tree.
Position a tree. This means: Set position of a node and position all its unpositioned children.
Ensure that given tree has no positions that overlap with
any of the positions of others
.
Ensure that given tree has no positions that overlap with
any of the positions of others
. This is done by
shortening the range or assigning TransparentPositions
to some of the nodes in tree
.
Does given list of trees have mutually non-overlapping positions? pre: None of the trees is transparent
Is the tree Predef, scala.
Is the tree Predef, scala.Predef, or _root_.scala.Predef?
resets symbol and tpe fields in a tree, @see ResetAttrs
resets symbol and tpe fields in a tree, @see ResetAttrs
A position that wraps a non-empty set of trees.
A position that wraps a non-empty set of trees. The point of the wrapping position is the point of the first trees' position. If some of the trees are ranges, returns a range position enclosing all ranges Otherwise returns first tree's position.
A position that wraps a set of trees.
A position that wraps a set of trees. The point of the wrapping position is the point of the default position. If some of the trees are ranges, returns a range position enclosing all ranges Otherwise returns default position.
(Since version 2.10.0) Use leftOfArrow instead
(Since version 2.10.0) Use resultOfEnsuring instead
Handling range positions atPos, the main method in this trait, will add positions to a tree, and will ensure the following properties:
Here, the solid descendant of a node are:
If the node has a TransparentPosition, the solid descendants of all its children Otherwise, the singleton consisting of the node itself.