| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we sometimes ended up forcing a companion class symbol from
a previous run or from the classpath which lead to weird issues like in
`false-companion`. Even if we end up not forcing such a symbol, its
presence can still lead to issue: before this commit incremental
compilation of `dotty-compiler-bootstrapped` was broken because we
recorded a false dependency on the non-bootstrapped `dotty-compiler`
jar.
The added test is currently marked pending because it does not work with
JUnit (which doesn't handle separate compilation), only partest. I
didn't managed to get it to work right, and this won't be necessary once
our testing framework is overhauled by
https://github.com/lampepfl/dotty/pull/2125 anyway, so I'll just have to
remember to enable this test afterwards.
|
| |
|
|
|
|
|
|
|
|
| |
I believe this worked only accidentally because we matched
more things with wildcards which turned out to be flawed. The test
errors show some funky _#_ types, so not sure whether the tests
are still valid or not. Moved back to pending awaiting further
resolution.
|
|
|
|
|
| |
These now compile with the changes to dependent methods, except
for one which is invalid under dotty.
|
|
|
|
|
|
| |
- Add tests that work to pos/neg, tests that don't work yet to pending/pos/neg.
- Also, change .gitignore to allow for a local directory.
- Also add a draft page to the docs.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
type.
Test case is isApplicableSafe -Ycheck:first.
|
| |
|
| |
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
Refinements to auto-tupling
|
| |
| |
| |
| |
| |
| | |
- Delete redundant t2660 (exists elready in pos)
- Comment t1756
- Recategorize tryexpr
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's a nasty interaction with auto-tupling and trying to insert an implicit
on the qualifier of a call. If the original call fails, we need to "undo" any
auto-tupling decisions in calls where an implicit is inserted on the qualifier.
Also: Needed to fix canAutoTuple test so that Scala2 feature is checked instead of dotty's.
Also: Drop features in dotty.language that duplicate those in scala.language.
|
| |
| |
| |
| | |
Bring in line with comparisons. Fixes z1720 for good.
|
|/
|
|
|
| |
Needed to address problem shown by z1720.scala.
Another fix to avoidance is needed to make it pass completely.
|
| |
|
|
|
|
| |
Turn assertion into test. Without this, neg/tcpoly_overloaded.scala fails.
|
| |
|
|
|
|
|
|
|
| |
Currently, the classfiles emitted by dotty do not contain the type
parameters information that javac relies on.
Fixing this is tracked by #1303.
|
|
|
|
| |
This was fixed two commits ago.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Map self-references in refinements to recursive types. This
commit does this for refinement types appearing in source.
We still have to do it for unpickled refinements.
Test apply-equiv got moved to pending because it simulates
the old higher-kinded type encoding in source, which relies
on the old representation in terms of self-referential refinement
types. The plan is not to adapt this encoding to the new
representation, but to replace it with a different encoding
that makes critical use of the added power of recursive types.
Use recursive types also when unpickling from Scala 2.x.
Add mapInfo method to Denotations.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When TypeVar#inst is empty but an instantiation exists in the typer
state, we should set ephemeral to true, because this instantiation will
be retracted if we throw away the current typer state.
This makes hkrange.scala pass, it compiled before but the type parameter
of `f` was inferred to be `Nothing` because of this bug, and this failed
Ycheck.
For anyone who wonders how caching bugs manifest themselves, here's what
happened in details in hkrange.scala:
1. In an ExploreTyperState we set `CC` to be `IndexedSeq` in the
constraint set
2. In that same typer state the TypeRef `CC[Int]` (it's a TypeRef
because `CC` is a type lambda) gets the denotation `IndexedSeq[Int]`,
which is correct, but the denotation is cached since `ephemeral` is
false, which is wrong.
3. Later, we retract the ExplorerTyperState, so `CC` is uninstantiated
again and unconstrained.
4. Then we do the subtyping check `CC[Int] <:< IndexedSeq[Int]`, because
the denotation of `CC[Int]` was cached, this returns true, but `CC` stays
unconstrained.
5. This means that when we instantiate `CC`, we get `Nothing`
After this fix, the TypeRef denotation is no longer cached, so when we
do `CC[Int] <:< IndexedSeq[Int]`, `CC` gets constrained as expected.
|
| |
|
|
|
|
| |
All pos tests up to 3999 have been triaged. One new test in pending.
|
| |
|
|
|
|
|
|
| |
The original IterableSelfRec is not syntactically legal after
the hk changes. I attempted to fix, but there's still a type error.
Need to investigate whether this is a true error or a bug.
|
| |
|
|\
| |
| | |
Fix/dependent methods
|
| | |
|
| |
| |
| |
| | |
Now handles included test if toplevel implicit is given, but not yet without.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were two instances where a constraint undergoing a replace would still refer
to poly params that are no longer bound after the replace.
1. In an ordering the replaced parameters was n ot removed from the bounds of the others.
2. When a parameter refers to the replaced parameter in a type, (not a TypeBounds), the
replaced parameter was not replaced.
We now have checking in place that in globally committable typer states, TypeVars are not instantiated
to PolyParams and (configurable) that constraints of such typer states are always closed.
Fixes #670.
|
| |
|
| |
|
| |
|
|\
| |
| | |
Fix #522.
|
| | |
|
|/
|
|
|
| |
The test had to be slightly modified because of dotty's stricter
checking of type bounds validity, see #525 where this was discussed.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each test needs to have its own package because pos_all will try to
compile the whole valueclasses directory at once.
The remaining tests with "extends AnyVal" in tests/pending/pos are
related to separate compilation, except for:
- t6482.scala and t7022.scala which were fixed by
https://github.com/scala/scala/pull/1468 in scalac and seem to
trigger a similar bug in FullParameterization
- strip-tvars-for-lubbasetypes.scala which was fixed by
https://github.com/scala/scala/pull/1758 in scalac
|
| |
|
| |
|