| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Fix #1776: Avoid interaction between parameter forwarding and elimByName
|
| | |
|
|\ \
| | |
| | | |
Fix #1757: Be more careful about positions of type variable binders
|
| | | |
|
|\ \ \
| |_|/
|/| | |
Fix #1756: Use lexically enclosing class as start of outer path.
|
| | | |
|
| |/
| |
| |
| |
| |
| | |
We confused the enclosing class (which skips the current class in super
call contexts) and the lexically enclosing class in three locations
that all had to do with the start of an outer path.
|
|\ \
| | |
| | | |
Fix #1765: Context bounds and denotation handling
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Once the context-bounds desugaring of i1765.scala was fixed, another problem came up:
We hit an invalid denotation due to some interaction between mixin and memoize.
It turned out that `insertInsteadOf` did not do what its doc comment claimed: it did
not store a forwarding pointer `nextInRun` in the overwritten denotation. Once that
was fixed we also needed to fix a follow-on erorr that now we could have chains of
invalid denotations linked by `nextInRun`.
|
|\ \
| | |
| | | |
Fix #1751: Make dominator work after erasure
|
| |/
| |
| |
| |
| |
| | |
i1751.scala shows a case where we need to compute the approximation
of an or-type during erasure. This can lead to an empty set of common
classes because Any does not exist anymore after erasure.
|
|\ \
| | |
| | | |
Fix #1773: handle patterns in interpolated string
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Fix #1639: Changes around implicits and apply methods
|
| | |
| | |
| | |
| | |
| | |
| | | |
This can lead to stackoverflow, as i1639.scala shows.
Fixes #1639.
|
|\ \ \
| | | |
| | | | |
Drop function 22 limit
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Functions with more than 22 parameters are now
automatically converted to functions taking
a single object array parameter.
This has been achieved by tweaking erasure.
Other things I have tried that did ot work out well:
- Use a single function type in typer. The problem with this
one which could not be circumvented was that existing higher-kinded
code with e.g. Funcor assumes that Functon1 is a binary type constructor.
- Have a late phase that converts to FunctonXXL instead of
doing it in erasure. The problem with that one was that
potentially every type could be affected, which was ill-suited
to the architecture of a miniphase.
|
|\ \ \ \
| |_|_|/
|/| | | |
Fix #1665: Check that != has an operand on the left.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
This PR also fixes #1649
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Need to evaluate annotation arguments in an expression context, since
classes defined in asuch arguments should not be entered into enclosing
class.
Fixes #1647
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If we want to do annotation macros right, we need to add
annotations before completing definitions. This commit achieves
that by adding a new "phase" between index and typecheck.
|
| |/ /
|/| |
| | |
| | |
| | |
| | | |
In this case, a path went through a type parameter which was
aliased to a singleton type. Need to dealias to get to the
special case handling two paths.
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix #1707: Survive non-existing positions in parser
|
| | | | |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
Some trees, which do not consume input have unassigned positions (so that
they can fit in whatever range they are integrated). It's therefore risky
to take the start or end of a parsed tree's position. This commit guards
against the case where the position of the tree does not exist.
|
|\ \ \
| |/ /
|/| | |
Fix colons in printer
|
| | | |
|
| |/ |
|
|/
|
|
|
| |
So far, only typed patterns an dunapply had GADT matching.
i1737.scala shows that we need to do the same thing for objects.
|
|
|
|
|
| |
This could be abstracted better but we'll end up replacing
checkNoPrivateLeaks soon anyway due to https://github.com/lampepfl/dotty/issues/1723
|
|
|
|
|
|
| |
The access boundary of a def in a local class is the owner of that
class, previously it was set to the access boundary of the owner of the
class instead.
|
|
|
|
|
|
|
|
|
|
|
| |
Previously Outer2#Inner#foo failed to compile with:
```
non-private method foo refers to private value x in its type signature
```
This should compile because the boundary of `foo` is `class Outer2`
and the boundary of `x` is `object Outer2`. This commit fixes this by
also considering the linked boundary in `checkNoPrivateLeaks`.
|
|
|
|
|
|
|
| |
It failed because two files in the same package compiled at the same
time defined respectively a class Test and an object Test. I'm guessing
this did not fail before because failure depends on the order of the
files on the command line.
|
|
|
|
|
|
|
|
|
|
| |
Previously, the tests where all in tests/pos/java-interop which means
that partest would try to run them as one single test, this failed
because some of these tests define classes with the same name. We could
fix this by putting them all in separate packages but for now it's
simple to move them to tests/pos-java-interop (they will still be run
individually as they should thanks to the `java_all` test defined in
tests.scala)
|
| |
|
| |
|
| |
|
|\
| |
| | |
Towards correct positions in TASTY types
|
| |
| |
| |
| |
| |
| |
| | |
Lots of other changes to make positions work out everywhere.
One important change is that now trees can be shared, just
as types can. This change improves memory requirements (a bit)
and also makes positions in shared trees more robust.
|
| |
| |
| |
| |
| |
| | |
Pick a less common name for the missing identifier. Depending
on my classpath I sometimes got `x is not a package` as an additional
error for this one.
|
| | |
|
|\ \
| | |
| | | |
Fix #1708: duplicate symbols in package
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Here we unlink the existing type that clashes with the package to be
entered into the symbol table, issue an error and the proceed to enter
the rest of the symbols.
My concern with this approach is what happens during typechecking
if other things reference the unlinked type.
|
|\ \ \
| | | |
| | | | |
fix #1701: disqualify package name in type name resolution
|
| | | | |
|