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

+0

對我來說看起來像一個bug。 –

回答