Wenn mit Scalas abhängigen Verfahrenstypen zu spielen, stieß ich auf einen Konflikt mit Standard-Methodenparameter:Dependent Methodentypen Konflikt mit Standardargumenten
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
}
Die Botschaft lautet:
[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
Wenn ich das Argument entfernen Mit dem Standardwert aus Methodendefinition und Implementierung wird das Beispiel erfolgreich kompiliert. Was mache ich falsch? Ist es ein Fehler?
P.S. Ich benutze Scala 2.11.4
Sieht aus wie ein Fehler für mich. –