1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
object selftypes { trait LinearSeqLike[+A, +Repr <: LinearSeqLike[A, Repr]] { self: Repr => type X def toX: X } abstract class LS[+A] extends LinearSeqLike[A, LS[A]] { } val x: LS[Int] = null x.toX }