blob: f3d2f7ab5aec57ebad86e308d215d25d0b39fc84 (
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
29
30
31
|
abstract class F {
type mType <: M
}
abstract class M { self =>
type mType <: M
type fType = F {type mType >: self.mType }
def fs: List[fType]
}
abstract class A0 extends M {
type mType = A0
def fs: List[fType] = Nil
}
object A extends A0 {}
abstract class B0 extends M {
type mType = B0
def fs: List[fType] = Nil
}
object B extends B0 {}
object C {
def ab = List(A) ::: List(B)
// the following compiles successfully:
// def ab = List(A) ::: List[M](B)
}
|