| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|\
| |
| | |
Don't retain picklers until backend.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`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.
|
|\ \
| |/
|/| |
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.
|
| | |
|
|\ \
| | |
| | | |
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.
|
|\ \ \
| |/ /
|/| | |
Don't allow redefinition of core classes
|
| |/
| |
| |
| | |
Fixes #1688.
|
|\ \
| |/
|/| |
Resync copy of the type diagram in docs
|
| |
| |
| |
| |
| |
| |
| | |
Also add a note that the two diagrams should be kept in sync, both ways,
so there's a chance that the copies are kept in sync.
Alternatively one could drop a copy.
|
|\ \
| |/
|/| |
Use inline flag instead of @inline annotation
|
| |
| |
| |
| |
| | |
Convert `@inline` annotations to `inline` flags, not the
other way round as was done before.
|
|\ \
| |/
|/| |
Avoid calling unsupported computeHash in some situations
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some types do not implement `computeHash`, instead they override
`myHash` directly. This works fine as long as `myHash` is not equal to
`HashUnknown` but this was not guaranteed before this commit, if
`myHash` is equal to `HashUnknown` then `computeHash` is called by
`CachedGroundType#hash` or `CachedProxyType#hash` causing an exception:
https://gist.github.com/smarter/6b642db0495e995d8f3c26d614cf54d6
This commit fixes this by making sure we never compute a hash equal to
`HashUnknown`, instead `HashUnknownAlt` should be used.
|
|\ \
| | |
| | | |
Fix #1638: Don't import when typing a package clause
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When typing the first identifier of a package clause, disable
imports, as package clauses are never imported.
Fixes #1638.
|
|\ \ \
| | | |
| | | | |
Fix #1637: Future defs are always OK
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
Drop special mode that handles future defs without which we
get DenotationNotDefinedHere errors. In more than a year, this
has only turned up false negatives. So I think it's better to
drop the check, and the contortions needed to deal with it.
|
|\ \ \
| | | |
| | | | |
Fix #1652: Make assertion more robust
|
| | | | |
|
| | |/
| |/|
| | |
| | |
| | | |
An assertion fired giving a false negative after a fuzzing
test which introduced an ill-kinded type argument.
|
|\ \ \
| |/ /
|/| | |
Fix Tasty positions
|
| | |
| | |
| | |
| | | |
Other comments had already been addressed in previous commits.
|
| | |
| | |
| | |
| | | |
Merge with POLYtypem, as we do already for internal types.
|
| | |
| | |
| | |
| | |
| | | |
Don't convert to a TypeTree in PostTyper, because that
loses internal positions.
|
| | |
| | |
| | |
| | |
| | |
| | | |
If we want to pickle types with positions we should not
converyt to TypeTrees before pickling. Instead, type trees
are now converted to TypeTrees in FirstTransform.
|
| | |
| | |
| | |
| | |
| | | |
This is needed to figure out where the defined name is in a
definition.
|
| | |
| | |
| | |
| | | |
Don't generate positions that can be reconstructed from the initial position of a tree.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Inlined trees should be preserved by pickling so that we keep
positions accurate.
With that change now all tasty tests are tested for position
accuracy.
|
| | |
| | |
| | |
| | |
| | | |
With that change, all files tested in pickleOK have the
same positions before and after pickling.
|
| | |
| | |
| | |
| | | |
Was: position of self def, now: position of tpt in self def.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Shared trees are pickled under multiple addresses. Previously, only the
last address was stored, which led to trees with unknown positions.
Now, all addresses are stored.
|
| | |
| | |
| | |
| | | |
Also, some simplifying refactorings and renamings
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The plan is to keep original type until after pickling,
and afterwards replace it with a simple TypeTree.
# Conflicts:
# src/dotty/tools/dotc/core/tasty/TreePickler.scala
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The goal is that pickled and unpickled trees should print
the same with -Yprintpos. There are several reasons why this
is not the case so far. Some of them are fixed in this
commit.
|
| |/
|/| |
|
| |
| |
| |
| |
| | |
This commit adds the semantic object for the ```definition not found``` error.
It is part of the (https://github.com/lampepfl/dotty/issues/1589)[https://github.com/lampepfl/dotty/issues/1589]
|