依存する戻り値の型を宣言するメソッドを実装する Scala 2.9.2 で問題が発生しています。次のコード
object DependentTypesQuestion {
def ??? = throw new UnsupportedOperationException
trait X {
trait Y
}
trait Z {
def z(x: X): x.Y
}
object Z extends Z {
override def z(x: X): x.Y = ???
}
}
2.9.2 の下では、コンパイル中に次のエラー メッセージが生成されます。
overriding method z in trait Z of type (x: DependentTypesQuestion.X)x.Y; method z has incompatible type
2.10.0-M4 では問題が修正されたようですが、残念ながら私のプロジェクトは今のところ 2.9 に関連付けられています。
2.9.2 でこの問題を回避することはできますか?
(あるいは、2.10 からのバックポートされた修正を含む 2.9.3 の見込みはありますか?)