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

Похож на ошибку. –

ответ