| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Inline trees can now be read form TASTY. However, positions are not set
correctly. This remains to be implemented.
|
|
|
|
|
| |
- represent directly as a list
- can replace separate inlineCount
|
| |
|
|
|
|
|
| |
Dottydoc needs the unexpanded trees so that it can have access to the
attached docstring
|
|
|
|
|
| |
pos/power inlines with alomst no extraneous boilerplate.
neg/power gives an error that maximal numbers of inlines was exceeded.
|
|
|
|
|
|
|
|
|
| |
Avoid bindings such as
type T = T'
val x: x'.type = x'
Required some refactorings in Inliner.
|
|
|
|
| |
Inline conditionals with constant conditions
|
|
|
|
|
| |
Error messages now print the inlined positions as well
as the position of the inlined call, recursively.
|
| |
|
|
|
|
|
|
|
|
|
| |
... to tag inlined calls. Perform typings and transformations
of inlined calls in a context that refers to the INlined node
in its InlinedCall property.
The idea is that we can use this to issue better error
positions. This remains to be implemented.
|
|
|
|
| |
To do this, factor out Key from Attachment into a new type, Property.Key.
|
|
|
|
|
| |
To be done: outer accessors
To be done: error positions
|
|
|
|
|
| |
- DRY
- Refactor out special path operations
|
|\
| |
| | |
Drop modifiers
|
| |
| |
| |
| |
| | |
That way it can be accessed by other parts which deal with
error messages.
|
| |
| |
| |
| |
| | |
The typed variant is no longer needed. This means modifiers can safely be
ignored in typed trees if we so choose.
|
| |
| |
| |
| |
| |
| | |
Backend does not need them after all, can just use nulls there.
So the functionality is only used for printing, and it makes
sense to move everything there.
|
| |
| |
| |
| | |
Prefer to access directly via symbol.
|
|\|
| |
| | |
Simplify trees
|
| | |
|
| | |
|
| |
| |
| |
| | |
Thicket has a vararg constructor, so this syntax is redundant.
|
| |
| |
| |
| |
| |
| | |
Roll its functionality into Select. Since we can always
tell whether a tree is a type or term there is no expressiveness
gained by having a separate tree node.
|
|/
|
|
|
|
|
|
| |
Drop tree node class 'Pair'. It was used only in imports, where
it can easily be replaced by Thicket.
The envisaged use for generic pairs is almost sure better modelled
by a "Pair" class in Dotty's standard library.
|
|\
| |
| | |
Make positions fit for meta
|
| | |
|
| |
| |
| |
| |
| |
| | |
That way, we can check functions for the ordering requirement as well.
We only have to remember that the last parameter of a wildcard function
does not precede its body (because the parameter is in fact part of the body).
|
| |
| |
| |
| | |
Arrange its sub-elements so that they appear strictly left to right.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Check that children of a node have non-overlapping positions and that positions
of successive children are monotonically increasing.
This holds currently except for 3 exceptions:
- Trees coming from Java as the Java parser also does desugarings which copy trees.
- Functions coming from wildcard expressions
- Interpolated strings
We'll see whether we can do something about the latter two.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now it's annotated first, annotation second.
This is in line with AnnotatedType and in line with the principle
that tree arguments should come in the order they are written. The
reason why the order was swapped before is historical - Scala2 did it
that way.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In particular:
- get rid of envelope, it's too complicated and hides too many errors
- check that everywhere in parsed trees the position range of a parent
node contains the position ranges of its children.
- check that all non-empty trees coming from parser have positions.
The commit contains lots of fixes to make these checks pass.
In particular, it changes the scheme how definitions are positioned.
Previously the position of a definition was the token range of the
name defined by it. That does obviously not work with the parent/children
invariant. Now, the position is the whole definition range, with the
point at the defined name (care is taken to not count backticks).
Namer is changed to still use the token range of defined name as the
position of the symbol.
|
|/
|
|
|
| |
Code inspection revealed that it did the wrong thing for annotated trees,
looking in the annotation instead of in the argument.
|
|\
| |
| | |
Clean up config.Printers imports
|
| |
| |
| |
| | |
And remove the not used Printer#echo
|
|\ \
| | |
| | | |
sbt bridge reporter
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
Fix bootstrap, take 3
|
| | |
| | |
| | |
| | |
| | | |
Add comment what it is supposed to achieve and change the implementation
to follow the comment.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Wehn compiling dotty repeatedly using dotc.Bench, we got a stale symbol
error involving an outer field of a Scala class. These can always be assumed
to be current, as we would not think to recompile Scala2 classes mixed
with dotty classes in the same session (we'd need two concurrent
compilers for that).
|
| | |
| | |
| | |
| | |
| | |
| | | |
Need to do time travel to find out whether members
were created as static symbols. After LambdaLift
and Flatten most symbols are static anyway.
|
| | |
| | |
| | |
| | |
| | | |
1. There may be calls to super on non-this.
2. there may be calls to in-dirrect super-traits.
|
|\ \ \
| |/ /
|/| | |
Remove scoverage sbt plugin
|
| | |
| | |
| | | |
It doesn't work.
|
|\ \ \
| | | |
| | | | |
Fix #1503: be more careful where to insert apply
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
`apply` nodes should not be inserted in the result parts
of a block, if-then-else, match, or try. Instead they should
be added to the surrounding statement.
|
|\ \ \
| | | |
| | | | |
Fix #1457: Three incompatbilities with scalac
|