| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
Re-enable context-leak detection by reverting 53cd512.
But leak detection seems to be leaky itself :-)
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
The memory footprint captured by pickler seems to be about
1/3rd of total footprint. So we gain a lot by not making this
die sooner rather than later.
|
|\ \
| |/
|/| |
Towards correct positions in TASTY types
|
| | |
|
| |
| |
| |
| |
| | |
The qualifier of a This and the mixin of a Super were names, which meant
that their positions were lost. Now they are untyped idents.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Express them in terms PolyTypeTrees rather than having an
irregular, untyped only tparams field. This is necessary
if we want to pickle type trees instead of types, because
now the rhs of a typedef tells the whole story, so we are not
required any longer to use the info of the symbol.
|
| |
| |
| |
| |
| | |
It seems like overengineering to use different names for
poly methods in definitions and synthetic lambdas.
|
| |
| |
| |
| | |
As a side effect, avoid creating synthetic parameters in lambda abstract.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
If we want to pickle type trees, we need a type assigner
for RefinedTypeTree.
|
|\ \
| | |
| | | |
Fix #1648: don't define companion object for java.lang.Object
|
|/ / |
|
|\ \
| | |
| | | |
Fix #1708: duplicate symbols in package
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Unlinking proved to cause other problems in the typer, specifically if
typechecking members of non-existing package or things referring to the
unlinked 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
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Fix isNullable when `<:<` term refs.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Note that without the fix console tests will fail and without
the warning there is no way to test the fix.
|
|\ \ \ \
| | | | |
| | | | | |
Make sure messages are lazily evaluated until `report` in `Reporter`
|
| | | | | |
|
| | | | | |
|
| | |_|/
| |/| | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1703
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since self types are critical we should only install
one if it is syntactcally correct.
Fixes #1703.
|
|\| | | |
| |_|_|/
|/| | | |
Don't allow redefinition of core classes
|
| |/ /
| | |
| | |
| | | |
Fixes #1688.
|
|\ \ \
| | | |
| | | | |
Fix #1664: Refine isOuterRef condition
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We forgot the case where a hoistable method can still
refer to free variables that have to be passed using
outer pointers.
Fixes #1664.
|
|\ \ \
| | | |
| | | | |
Fix #1653: Check "no inherit from final" earlier.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
After refactoring, one test (cannot extend final class) shadowed the others,
which wer done in a later phase.
Splitting in two to get all errors again.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The test case is an illegal inheritance from a primitive value class,
which makes this an illegal value class. Previously, the error was
detected by refchecks, but crashes occured earlier (when generating
synthesized methods) or at the same phase block (in extension methods).
The problem is avoided by moving the test to Namer.
Review by @smarter.
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1662: Add missing case for singleton
|