Я бы хотел использовать стекируемый паттерн черты с одноэлементными объектами, но я не могу найти способ сделать компилятор счастливым:
abstract class Pr {
def pr()
}
trait PrePostPr extends Pr {
abstract override def pr() {
println("prepr")
super.pr()
println("postpr")
}
}
object Foo extends Pr with PrePostPr {
def pr() = println("Foo")
}
Попытка оценить это в repl приводит к следующей ошибке:
<console>:10: error: overriding method pr in trait PrePostPr of type ()Unit;
method pr needs `override' modifier
def pr() = println("Foo")