| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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
|
|
|