blob: cf9a6a6ae97cfa21b87a7e229a422dc83a8396a2 (
plain) (
tree)
|
|
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 => }
// }
// }
|