我在 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.9.3 的前景,其中包括 2.10 的反向移植修复?)