| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| | |
Some tests are run with "-Ytest-pickler" which uses a huge amount of
memory. By running these tests one by one when no other test is running,
we avoid running out of memory.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| |
| |
| |
| |
| | |
Before this commit, commands such as "test" would not run anything,
which means that the JUnit tests were never run.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before this commit, Build.scala contained:
baseDirectory in run := baseDirectory.value / "..",
The goal of this line is that when invoking the compiler using `run` or
`dotc`, the working directory is the root of the dotty project, which is
convenient for testing.
However, this line also affects the working directory of
`dotty-compiler/runPartestRunner`, but not of `dotty-compiler/test`.
The result was that `dotty-compiler/test` was broken, and fixing the
paths in the code would break `partest`.
We solve this by using a different baseDirectory when running partest.
|
| | |
|
| |
| |
| |
| |
| | |
Otherwise `packageAll` by itself as used in aliases like `partest` won't
work.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Should still perhaps move `test/dotc/tests.scala` and the others in the
same directory to a better more cohesive location. Would like to delete
the worksheets as well - but maybe they hold sentimental value...
|
| |
| |
| |
| |
| | |
The pickler doesn't unpickle to HKApply, as such - we need
to print them in their applied form.
|
| | |
|
| |
| |
| |
| | |
As indicated by the comment right above it.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
Broken since the dotty jars were removed from the JVM bootclasspath. I think
the proper solution is to use the Scala bootclasspath to pass all the
necessary jars but this will do for now.
|
| |
| |
| |
| |
| | |
It was wrongly defined before with respect to `commandLineFor` (this is
what happens when you rely on strings instead of types!)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
| |
| |
| |
| |
| |
| | |
The fix to partest to make it compile files in subdirectories means that
we're compiling more things and using more heap and has resulted in
tests failing with OutOfMemoryError. Hopefully this fixes that.
|
| |
| |
| |
| |
| |
| | |
Running `packageAll` is now required before running the tests, this
commit enforces this, by making `javaOptions` depend on `packageAll`,
this requires rewriting `packageAll` to be a task instead of a command alias.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
Don't retain picklers until backend.
|
| |
| |
| |
| |
| |
| |
| | |
Previously only the FrontEnd got a fresh FreshNameCreator for
each run, the other phases used a global one instead. This means
that compiling the same file several times would create different
synthetic names and classes on each run.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`initInfo` was retained in Symbols. When called from `Namer`, `initInfo` referred to
a completer, which referred to a context.
With this space leak plugged, we can now compile 1000 times core/Comments.scala (460lines)
with -Xmx400M.
There still seems to be a space leak on the order of 200KB per run, though. But that seems
to have to do with symbols, not contexts.
|
| |
| |
| |
| |
| |
| | |
The lazy val `dummyTree` acquires a type because of
copy-on-write and that type can refer via lastDenotation
to a context base.
|