我正在尝试使用这种代码:
trait Outer {
type Inner
def f(x:Inner) : Void
}
object test {
def apply(o: Outer, i : Outer#Inner) : Void =
o.f(i)
}
我在最后一行出现错误:
类型不匹配; 找到:i.type(底层类型为 Outer#Inner) 需要:o.Inner
如果我将申请的签名更改为
def apply(o: Outer, i : o.Inner) : Void
然后我得到一个错误:
非法依赖方法类型
是否有可能让这段代码工作?