| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
The pickler doesn't unpickle to HKApply, as such - we need
to print them in their applied form.
|
| |
|
|
|
|
|
| |
It was wrongly defined before with respect to `commandLineFor` (this is
what happens when you rely on strings instead of types!)
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
If we want to pickle type trees, we need a type assigner
for RefinedTypeTree.
|
| | |
|
|\ \
| | |
| | | |
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.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | | |
Have to handle also SkolemTypes there.
Fixes #1662.
|