blob: cf9a6a6ae97cfa21b87a7e229a422dc83a8396a2 (
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
32
|
object Traits {
trait OuterClass[V <: OuterClass[V]#InnerClass] {
trait InnerClass {self: V =>
def method = ()
}
}
trait SubOuterClass[T <: SubOuterClass[T]#SubInnerClass] extends OuterClass[T] {
trait SubInnerClass extends super.InnerClass {self: T => }
}
trait SubOuterClass2[T <: SubOuterClass2[T]#SubInnerClass2] extends OuterClass[T] {
trait SubInnerClass2 extends super.InnerClass {self: InnerClass with T => }
}
}
// object Classes {
// class OuterClass[V <: OuterClass[V]#InnerClass] {
// class InnerClass {self: V =>
// def method = ()
// }
// }
// class SubOuterClass[T <: SubOuterClass[T]#SubInnerClass] extends OuterClass[T] {
// class SubInnerClass extends super.InnerClass {self: T => }
// }
// class SubOuterClass2[T <: SubOuterClass2[T]#SubInnerClass2] extends OuterClass[T] {
// class SubInnerClass2 extends super.InnerClass {self: InnerClass with T => }
// }
// }
|