| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
When printing with -Yprintpos always have the position follow
immediately the term with the position. Makes it easier to
interpret diffs.
|
|
|
|
|
| |
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.
|
|\
| |
| | |
Small fixes to some warnings/comment typos
|
| | |
|
| |
| |
| |
| | |
The warning is invalid but Scalac can't tell.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Fix #1543: Ignore IgnoredProto when normalizing method application.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix erasure of "def foo[T]: Unit", do not box the return type
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
fix #1274: test for dotty bootstrap based on tasty
|
|/ / / / |
|
|\ \ \ \
| |/ / /
|/| | | |
Fix #1552: REPL file loading
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Harmonize PolyType and TypeLambda
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If PolyTypes are to become value types we want to keep `=>` as the arrow
for consistency. `->` should be reserved for PolyTypes that do not have
side effects on instantiation.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The refactored logic only applies to infos of denotations, not
general types. The reactoring avoids special cases down the road
then PolyTypes and MethodTypes can be used for terms as well as
type(bounds).
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Otherwise we can run into problems when checking imports for e.g.
scala2Mode in later runs.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
to account for the fact the GenericTypes are now TypeProxies.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Let them inherit the same traits and push as much
functionality as possibly into the common superclass
GenericType.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
True union types
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Test case: orInf.scala. This showed a problem where an `either` operation
had to arbitrarily pick one constraint over another, leading to a type
error down the line. What happened was that a `constrainResult` generated
the constraint
Set[A] <: Set[String] | Set[Int]
But this constraint cannot be simplified without a cut and a resulting
loss of information. We avoid the problem by not constraining the result
if the prototype is a disjunction.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
This happened for singletonOrs, and led to spurious errors there.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For the moment, we do not know how to handle something like
1 | 2
or
x.type | y.type
correctly. So it's better to disallow these situations until we find a proper
solution.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Splitting or types is no longer needed with new scheme.
Replacing idents with This nodes is better done in ExplicitSelf.
So splitter now just distributes applications into and ifs.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Makes sure the symbol in the tree can be approximately reconstructed by
calling member on the qualifier type.
Approximately means: The two symbols might be different but one still overrides
the other.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
In fact all of dotty.language can be removed.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If entries are type variables, we have to check their
instances for equality.
This came up onder the new or handling scheme.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Don't replace them by their dominators, unless one of the following holds:
- language:Scala2 mode is on
- we are at the point of findMember selection
- we compare with a higher-kinded application
This means approximateUnion is now split into harmonizeUnion and
orDominator which each implement one of the former's two functionalities.
|
| | | | | |
|
| | | | | |
|