Конкретные классы с членами абстрактного типа
Даны следующие черты и класс. Почему это компилируется? Может ли это быть использовано для чего-то?
trait Container {
type A
}
trait AnotherContainer[B]{
def x(b : B) : B
}
trait Mixed extends Container with AnotherContainer[Container#A]
class Impl extends Mixed{
def x(a : Container#A) = a
}
new Impl().x _
scala> new Impl().x _
res0: (Container#A) => Container#A =
Обновить:
class Baz { type T; }
На самом деле это особенность, но я не смог найти мотивации для этого:# 1753.