| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This reverts commit 5c5e8d4dcd151a6e2bf9e7c259c618b9b4eff00f.
|
|
|
|
|
|
|
|
| |
Changed behavior so that when determining the target variance of a method parameter,
the variance in formals comes first. If variance is still undecided by that,
the variance in the result type is used as a secondary criterion.
(This is also done when determining prototype type params.)
|
|
The inference failure itself seems like an instance of of SI-3346.
But dependent method types (which triggered the crash), can be employed
to avoid inferring the type constructor CC.
class Num[T] {
def mkOps = new Ops
class Ops { def +++(rhs: T) = () }
}
class A {
implicit def infixOps[T](lhs: T)(implicit num: Num[T]): num.Ops = num.mkOps
implicit val n1: Num[Int] = new Num[Int] { }
5 +++ 5
}
|