次のコードは、 の実装でv.o.Inner
とが同じであることをコンパイラが証明できないため、コンパイルされません。コンパイラー時に認識されるようにする必要があることをコンパイラーに伝える方法がわかりません。何か案は?Outer.this.Inner
visit()
v.o
Outer.this
class Outer {
class Inner {
def visit(v:Visitor) = v.visitInner(this)
}
}
class Visitor(val o:Outer) {
def visitInner(i:o.Inner) = { println("foo") }
}