Я видел некоторую черту записи кода следующим образом:
trait SelfAware { self: Self =>
....
}
class Self
val s = new Self with SelfAware // this is ok
println(s.self) // error happened
class X
new X with SelfAware // error happened here
Я хотел бы знать, почему произошла ошибка и как использовать черту таким образом?