| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
We were pushing the limit of 64 phases before.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Got a "next on empty iterator" exception before.
|
|
|
|
| |
It was broken before, since it worked only on wildcard imports.
|
|
|
|
|
| |
Honor the new scheme where any explicit import of a
root import will disable the root import.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We got a hard to track down error when changing to the new
annotations elaboration scheme (should be in the next commit):
When running `testNonCyclic`, `DotClass` was not found in object Trees
even though it was imported from `util`. It turned out that the import
was ignored because the `util` symbol was completing.
This commit adds a warning when this happens. The warning currently applies
only to named imports because several false negatives were encountered if
we do this also on wildcard imports. I.e. we get a warning, but the searched
after symbol is not a member of the wildcard qualifier.
This commit also refactors namedImportRef, so that `site` is only
computed when the name to reseolve appears in the selector list.
That change made the previously observed error go away because less
is now forced.
|
|
|
|
|
| |
Had duplications of `import` before.
Also: add import info when printing contexts.
|
|
|
|
|
|
| |
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
|
| |
| |
| |
| |
| | |
This is done so that we can use show for the entire method except for
the ascribed type added by the compiler on success.
|
| | |
|
| | |
|
|/
|
|
|
| |
So far, only typed patterns an dunapply had GADT matching.
i1737.scala shows that we need to do the same thing for objects.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fengyun's original solution was the right one. We cannot NOT
enter a package class into its parent scope, because reloading
the denotation with .member will fail. So we need to enter it and
compensate by adding a clause to `qualifies` in `typedIdent`.
Weirdly, this was noted only when running tasty_bootstrap from
a custom classpath in the new build setup. So it was pretty
tricky to diagnose.
|
|
|
|
|
|
| |
Special-casing like this is ugly, we should decide whether we want to
avoid simplifications on all TypTrees and whether we want to do this
just in unpickler or always. But I want to merge this PR first.
|
|
|
|
|
| |
Otherwise, they may end up with a qualifier, this manifested itself as a
pickling difference in `tasty_tools`.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fix the test "Extracted source dependencies from public members"
which previously failed with:
Set('G, 'E) is not equal to Set('B, 'E) (DependencySpecification.scala:34)
`H` extends `G.T[Int]` which is an alias of `B`, so the
`topLevelInheritanceDepndencies` of `H` should contain `B`, this was not
the case before because we didn't dealias before looking for the
top-level class of the dependency, so we ended up with `G`, the
top-level class in which the alias `T` is contained.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This lead to stale symbol errors in `tasty_tools` because the symbol
forcing was bringing forward symbols from the previous run before the
corresponding symbols for the current run were created.
We fix this by adding Annotations#deferredSymAndTree which behaves
similarly to Annotations#deferred but take a by-name symbol.
We also remove TreeUnpickler#LazyAnnotationReader which was apparently
never used.
|
|
|
|
|
|
|
| |
We run checkNoPrivateLeaks in the unpickler since last commit and this
is causing an issue related to privacy leaks. Give up and workaround
it since we're going to redesign how we handle privacy leaks because
of https://github.com/lampepfl/dotty/issues/1723 anyway.
|
|
|
|
|
| |
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`.
|
| |
|
|
|
|
|
| |
This might cause a stale symbol exception and make it harder to find the
source of the problem.
|
| |
|
|
|
|
|
|
|
|
|
| |
This manifested itself as a pickling difference in tasty_tools
Note that there are probably more issues in this method, in particular
the old type is reused when `qualifier.tpe eq tree.qualifier.tpe` even
if the `name` is different. But I'm only trying to get the tests to pass
for now.
|
|
|
|
| |
This manifested itself as a pickling difference in tasty_tools
|
|
|