| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Turned out hmaps.scala requires the arg alignment to compile.
So we have our first counterexample that we cannot drop this
hack. Now it is made safe in the sense that no constraints get
lost anymore.
|
|
|
|
|
| |
Need to use fresh PolyParams instead of WildcardTypes
if constraint is committable.
|
| |
|
|
|
|
|
| |
Variance changes quite a few things for type inference, so
it's good to check a non-variant version as well.
|
| |
|
|
|
|
|
| |
These now compile with the changes to dependent methods, except
for one which is invalid under dotty.
|
| |
|
|
|
|
|
| |
The HLists test brought out the unsoundness of alias
rewriting in glbs which is tackled in the last commit.
|
|
|
|
|
|
|
|
|
|
|
| |
We previously tried to force S1 and S2 be the same type
when encountering a lub like `T1 { A = S1 } & T2 { A = S2 }`.
The comments in this commit explain why this is unsound, so
this rewrite is now made subject to a new config option, which
is off by default.
I verified that the new behavior does not affect the performance of
the junit tests.
|
|
|
|
|
|
| |
We approximate dependencies to parameters by Wildcards. This was already
done in one place, is now done in other places as well, instead of doing nothing for
dependent methods.
|
|
|
|
|
| |
No reason why we should not - normalize handles implicit
methods just fine. This fixes type errors in test HLists.scala.
|
|
|
|
|
|
| |
If an applied type has a refinement, it was
printed before as one large refinement type
including the type parameter bindings.
|
|\
| |
| | |
Fix #2033: Improve handling of unresolved overloaded arguments
|
| | |
|
|\ \
| | |
| | | |
HMap test case
|
| | | |
|
| | | |
|
|\ \ \
| |_|/
|/| |
| | |
| | | |
dotty-staging/remove-duplicate-code-for-wrapArrayMethodName
Remove wrapArrayMethodName from defn.
|
|/ /
| |
| |
| | |
Note that it is never used and the same method exists in transform.TreeGen
|
|\ \
| | |
| | | |
Fix import which produces flakey test results on Eclipse
|
| | |
| | |
| | |
| | |
| | | |
Previous import gave test errors under eclipse. Probably
due to some stray directory on the classpath.
|
|\ \ \
| | | |
| | | | |
Treat implicit by-name arguments as lazy values
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
With the previous rules, the two test cases produce a
diverging implicit expansion. We avoid this by creating
for every implicit by-name argument of type T a lazy implicit
value of the same type. The implicit value is visible for all
nested implicit searches of by-name arguments. That way,
we tie the knot and obtain a recursive lazy value instead of
a diverging expansion.
|
|\ \ \ \
| |_|/ /
|/| | | |
Make resolveSuper less slow
|
| | | |
| | | |
| | | |
| | | |
| | | | |
By ordering tests in a smarter way.
Add leave a big scary comment.
|
|\ \ \ \
| | | | |
| | | | | |
Better error messages for missing type of recursive definitions
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Add overloading support for case-closures
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
case-closures (which are represented as Match nodes) have a known
arity just like other function literals. So shape analysis for
overloading resolution should apply to them as well.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix warnings in sbt build
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
[doc] some html enhancements for matsuri
|
| | | | | | | |
|
| | | | | | | |
|
|/ / / / / / |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Change 'is abstract; cannot be instantiated' to Message
|
| | | | | | | |
|
| | |_|_|_|/
| |/| | | | |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
Fix #2020: Only the first parameters of a case class are caseaccessors
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Only the parameters in the first parameter list of a case class should get
the `CaseAccessor` flag. Fixes #2020.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Fix #2009: Fix placeholder params logic for lambdas
Logic was missing placeholders in rhs of lambdas.
* Add comment
* Fix typo
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix #2000: Make implicit and non-implicit functions incomparable
|
| | | | | | |
|
| | | | | | |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Implicit and non-implicit functions are incomparable with <:<, but are
treated as equivalent with `matches`. This means implicit and non-implicit
functions of the same types override each other, but RefChecks will
give an error because their types are not subtypes.
Also contains a test for #2002.
|