Option.fold in der Skala 2.10

In der folgenden Sitzung mit Scala 2.10.0-M7:

scala> trait A
defined trait A
scala> class B extends A
defined class B
scala> class C extends A
defined class C
scala> Some(0).fold(new B){_=>new C}
<console>:11: error: type mismatch;
 found   : C
 required: B
              Some(0).fold(new B){_=>new C}

Ich würde erwarten, dass der Compiler den allgemeinen Supertyp (nämlich A) findet, anstatt sich zu beschweren. Handelt es sich um die allgemeine Einschränkung der Typinferenz oder um die Konsequenz der Definition von Option.fold?

Vielen Dank.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage