私はこの種のコードを持っています
trait Outer1 {
type Inner1
}
trait Outer2 {
type Inner2
val ev: Outer1#Inner1 =:= Inner2
def f: Outer1#Inner1
}
object Main {
// My Problem here
// def test1(o2: Outer2): o2.Inner2 =
// o2.f // <- type mismatch
def test2(o2: Outer2): o2.Inner2 =
o2.ev.apply(o2.f)
}
test1 を機能させる機会はありますか? なぜ Scala コンパイラはev
暗黙的にそれを見て適用できないのですか?