blob: c1f055e10216340188268ba5325ff65f6562fa4c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package namedparams
class C[type Elem, type Value](val elem: Elem) {
def toVal: Elem = ???
}
abstract class D[type Elem, V](elem: Elem) extends C[Elem, V](elem)
abstract class D2[Elem, V](elem: Elem) extends C[Elem, V](elem) // error
abstract class D3[type Elem, V](x: V) extends C[V, V](x) // error
abstract class D4[type Elem](elem: Elem) extends C[Elem, Elem] // error
object Test {
val c = new C[String, String]("A") {
override def toVal = elem
}
val x: c.Elem = c.elem
val c2: C { type Elem = String } = c
val c3 = new C[Elem = String, Value = Int]("B")
val c4 = new C[Elem = String]("C")
val x2: c2.Elem = c2.elem
}
|