12
當與Scala的相關方法類型的打,我遇到了默認的方法的參數衝突:相關方法類型的衝突
abstract class X {
type Y
case class YY(y: Y)
}
object XX extends X {
type Y = String
}
trait SomeTrait {
def method(x: X)(y: x.YY, default: Int = 3): Unit
}
object SomeObject extends SomeTrait {
def method(x: X)(y: x.YY, default: Int): Unit = {}
method(XX)(XX.YY("abc")) // fails to compile
}
的消息是:
[error] found : me.alexbool.XX.YY
[error] required: x$1.YY
[error] Error occurred in an application involving default arguments.
[error] method(XX)(XX.YY("abc")) // fails to compile
如果我刪除了參數使用方法定義和實現的默認值,示例編譯成功。我究竟做錯了什麼?這是一個錯誤嗎?
P.S.我正在使用Scala 2.11.4
對我來說看起來像一個bug。 –