blob: 009566493fce215ee6b6794dce165e063aaa6b0e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
object Test {
class Arb[_]
implicit def foo[M[_], A]: Arb[M[A]] = null
foo: Arb[List[Int]]
type ListInt = List[Int]
foo: Arb[ListInt]
}
object Test2 {
import scala.collection.immutable.List
class Carb[_]
implicit def narrow[N, M[_], A](x: Carb[M[A]])(implicit ev: N <:< M[A]): Carb[N] = null
implicit def bar[M[_], A]: Carb[M[A]] = null
type ListInt = List[Int]
val x: List[Int] = List(1)
val y: ListInt = List(1)
type ListSingletonX = x.type
type ListSingletonY = y.type
bar: Carb[List[Int]]
bar: Carb[ListInt]
bar: Carb[ListSingletonX]
bar: Carb[ListSingletonY]
}
|