То, что я хотел бы выполнить, выглядит примерно так:
class Foo( val bar: String = "Hello!" ) extends MyTrait[ Foo ]
trait MyTrait[ T ] { self : T =>
T.bar
}
Изменение self: T на self: Foo, очевидно, работает, но MyTrait может расширить другой класс, который также имеет бар, поэтому self:Фу не приемлемо.
Я, наверное, ошибаюсь, есть идеи?