5
Scala 2.9.2で、依存する戻り値の型を宣言するメソッドの実装に問題があります。次のコードは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 = ???
}
}
は、コンパイル時に、次のエラーメッセージが表示されます。問題が修正されているようだ
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のいずれかの見通しはあるのでしょうか?)
です。残念なことに私の実際のケースでは、オブジェクトZは内部実装であり、外部の消費者は特性Zのみを参照するので、これは実際に入力したものを達成しません。 –
エスケープしようとする時間は2.9でしょう。 –