ist folgendes Nehmen wir an:Scala Typ Löschung Problem mit pfadabhängig/geschachtelte Typen
class Wrapper1 {
case class Condition(test: String)
}
object Wrapper1 extends Wrapper1
class Wrapper2 {
case class Condition[A](test: String)
}
object Wrapper2 extends Wrapper2
class Test
type T = // whatever
def test(fn: T => Wrapper1.Condition): X
def test[R](fn: T => Wrapper2.Condition[R]): X
}
Das Problem ist, dass wegen der Typ Löschung diese Methoden genau die gleiche Art nach dem Löschen haben. Es ist einfach, die Unterschrift des zweiten mit sagen zu ändern:
def test[R](fn: T => Wrapper2.Condition[R])(implicit ev: R =:= R): X
Aber das verwirrt den Compiler und die test
Methode an anderen Orten verwendet, ist nicht möglich. Aus verschiedenen Gründen versuche ich, den Namen dieser Methode konsistent zu halten. Gibt es eine Möglichkeit, dies erfolgreich zu tun?