| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Check that some types are not higher-kinded.
|
| |
| |
| |
| | |
Invalidates #813. Review by @darkdimius.
|
|\ \
| | |
| | | |
Always fully define the types of lifted expressions
|
| | |
| | |
| | |
| | | |
Fixes #822
|
|\ \ \
| |/ /
|/| | |
Fix various issues in `TypeAssigner#avoid`
|
| | |
| | |
| | |
| | | |
Fixes #741.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When we need to avoid `A` in the class `A#B`, we can try to replace `A`
by a supertype. Previously, we only tried to replace `A#B` itself by a
supertype.
Fixes #711.
|
|\ \ \
| |_|/
|/| | |
Change inference
|
| | |
| | |
| | |
| | |
| | |
| | | |
We now also consider type variables in a selection prefix of the
application. The test case was augmented to include a snippet which
only succeeds under the generalization.
|
| | |
| | |
| | |
| | | |
(scalac and dotty both produce an error here)
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Add collection strawman #1
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
This compiles only after the changes in this branch.
|
|\| | |
| |_|/
|/| | |
Change : freeze bounds
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There is a diff, but a minor one. Instead of
(T? >: Int <: Int)
we get
(T? = Int) after pickling.
|
| | |
| | |
| | |
| | |
| | | |
Iter2.scala fails with 6 errors, but succeeds once lubs and glbs do not try to
unify under invariant type constructors.
|
|\ \ \
| |/ /
|/| | |
fix compiling ScalaRunTime.scala
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
A test that checked for errors on overloading
now succeeds with the new rules.
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Whenchecking whether two denotations match it is not enough
to look at the signatures. The signatures might match (on the
parameters) but the actual parametre types might be different.
The change always tests infos after signatures, effectively
turning the signature test into a pre-filter.
|
| |
| |
| |
| | |
Fixes suggested by @marter when reviewing previous hk PR.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It turns out that asSeenFrom can produce types
that get projected with $apply but that are not
higher-kinded. An exampple failure is in Iter3,
andother in scala.collection.immutable.Map (which is
now part of the test suite).
We now detect that situation, and eta expand the
projected type in `derivedSelect`, this will
force a subssequent `lookupRefined` which will give
the desired normalized type.
Also added is a configurable test that checks that
$apply projected tyeps are in fact higher-kinded.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
...unless the HK type can be eta-reduced to a class type.
|
|/
|
|
|
| |
In Namer, eta expand any type argument that corresponds to a higher-kinded type parameter.
Also, check that all type parameter lists are fully applied.
|
| |
|
|
|
|
|
| |
Makes self types explicit, if this is needed to identify
a member in a select. Fixes #789.
|
| |
|
| |
|
|
|
|
|
| |
Check that calling a side effecting function returning
a constant type does not get suppressed.
|
|
|
|
| |
to test for propagation of constant types.
|
| |
|
|
|
|
| |
Should have been added on final vals commit.
|
|
|
|
| |
Desugaring worked incorrectly when both context bounds and default parameters were present.
|
|\
| |
| | |
Fix #756 super accessors
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Fix repeated
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
refOfDef is used in desugaring case classes, specifically the definition of an apply method.
Here it is necessary to pass a vararg argument (x: _*) if the case class parameter is repeated.
This functionality is now added to `refOfDef`. I verified that the other uses of `refOfDef` are
compatible with this change.
Fixes #768.
|
| | |
| | |
| | |
| | |
| | | |
Introduce a new non-terminal "SimpleLiteral". Only SimpleLiterals can be
types.
|
| | |
| | |
| | |
| | |
| | | |
Tested are now other numeric values, strings, booleans, which are
all legal singleton types.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Null and 'sym are not legal as singleton types because the underlying
values are not stable. They are rejected now outright instead of issuing
a cryptic "X is not stable" error message.
|
| | |
| | |
| | |
| | | |
It's decided that constant types and purity are independent.
|