Es scheint eine Feinheit bei der Verwendung der frühen Initialisersyntax zu geben.Frühe Initialisierung `neue {} mit SomeTrait` fehlgeschlagen
trait Base { def callMe = "callMe" }
trait Proxy { this: Base => def call = s"proxied: $callMe" }
val base1 = new Base { } // non-early init works
val baseFail = new { } with Base // error: trait Base is abstract; cannot be instantiated
val base2 = new { val n=1 } with Base // why does this fix the failure?
val proxy = new { } with Base with Proxy // why doesn't this fail?
Warum die baseFail
Linie versagen, während die anderen val
s nicht?
Die Fehlermeldung ist auch verwirrend - Ich versuche Base
nicht nur zu instanziiert, es in mischte