| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|\
| |
| | |
More tweaks to type inference
|
| |
| |
| |
| |
| | |
Need to export just uncommittedAncestor, can hide
isCommitted and parent.
|
| |
| |
| |
| |
| |
| | |
type.
Test case is isApplicableSafe -Ycheck:first.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Test case in isApplicableSafe.scala. It turns out that this
requires a context merge using the new `&' operator. Sequence of actions:
1) Typecheck argument in typerstate 1.
2) Cache argument.
3) Evolve same typer state (to typecheck other arguments, say)
leading to a different constraint.
4) Take typechecked argument in same state.
It turns out that the merge in TyperState is needed not just for
isApplicableSafe but also for (e.g. erased-lubs.scala) as well as
many parts of dotty itself.
|
| |
| |
| |
| | |
Not used yet, but we might use it as an alternative to typedArg invalidation later.
|
|\ \
| | |
| | | |
Fix #1490: type test of union types via type alias
|
|/ / |
|
|\ \
| |/
|/| |
Update readme: mark Exhaustivity checks & multiv.eq. as implemented
|
|/ |
|
|\
| |
| | |
Fixes of GADTs and test recategorization.
|
| | |
|
| | |
|
| |
| |
| |
| | |
We did not properly rename parameter references before.
|
| |
| |
| |
| |
| |
| | |
We now always widen selector type to the superclass if necessary,
no matter whether the selector type refers to a trait or a proper
class.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The special case in hasMatchingMember dealing with self-refential
members has to be generalized to deal lower and upper bounds.
Test case is t762.scala
|
| |
| |
| |
| | |
Fixes SI-7426, which caused a double definition before.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Fallback to .filter if a .withFilter is not available, but do this
only for .withFilter calls generated from for expressions (this is
different from what scalac does; the latter can also rewrite
.withFilter calls given in source, which is not desirable.
|
| |
| |
| |
| |
| |
| |
| | |
I believe it's better to just bite the bullet and insert the cast.
If it should become a problem, we can think of a fallback, e.g. marking the
expression with a special tag, so that it does not get typechecked. But
for the moment I am not sure it is an issue at all.
|
| |
| |
| |
| | |
See comment on the commit for an explanation.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Passing tests from pending/pos go in pos. Some others
go in diabled/not-testable. These are tests that require
a compilation order which we cannot yet do with our unit
testing framework. Compiling them alltogether (as is now
doen in junit) does not work either for them because they
contain a duplicate class.
|
| |
| |
| |
| |
| | |
This one failed in getters before because a (previously unchecked) assignment
was turned into a checked application. Now it passes.
|
| |
| |
| |
| |
| |
| | |
GADT logic is lost after PatMat. To make code typecheck, the typer
should already insert casts where a subtype check succeeded because
it involved bounds established by a GADT comparison.
|
| |
| |
| |
| |
| |
| |
| | |
Tree checker typed always dropped the expected type and replaced it by a wildcard.
This meant that type checking dor -Ycheck was much weaker than it should be.
A class of GADT problems is only diagnosed once the expected type is proberly
propagated.
|
|\ \
| | |
| | | |
Remove warnings from compliation of dotty.
|
| | | |
|
|/ / |
|
|\ \
| |/
|/| |
Implement Xprint-diff without external libraries.
|
| | |
|
|\ \
| |/
|/| |
Make sure arguments are evaluated in the correct typer state.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's a tricky interaction with caching of typed arguments in FunProto types
and backtracking using different typer states. We might end up with a typed
argument that is evaluated in one typer state and that is used in another. The
problem is that the argument typing might have inserted type variables (maybe
by adding polymorphic implicit views) that are not registered in the typer
state in which the application is finally typed. In that case we will see
an "orphan poly parameter" in pickling.
The fix is to discard argument types is their typerstate is not committed
to the one in which the application is finally typed. To apply the fix we
need to track
- for typer states: whether or not it was committed, and what its parent is.
- for function prototypes: the typer state in which an argument with cached type
was evaluated.
Test case is t1756.scala, which produced an "orphan poly parameter CI" before.
|
| |
| |
| |
| |
| |
| |
| | |
isErroneous forced LazyRefs through the `existsPart` combinator. This
might prompt further errors or infinite recursions, so should be avoided.
Seen in the wild when trying to trace t1756.scala with -Ylog:front and typr printer on.
|
|\ \
| | |
| | | |
Implementation of exhaustivity and redundancy check
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Add dottydoc
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|