У меня возникли проблемы с реализацией в 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?)