1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
trait A {
type D >: Null <: C
def foo(d: D)(a: Any, d2: d.type): Unit
trait C {
def bar: Unit = foo(null)(null, null)
}
}
object B extends A {
class D extends C
def foo(d: D)(a: Any, d2: d.type): Unit = () // Bridge method required here!
// No bridge method should be added, but we'll be happy enough if
// the "same type after erasure" error kicks in before the duplicated
// bridge causes a problem.
def foo(d: D)(a: Any)(d2: d.type): Unit = ()
}
object Test extends App {
new B.D().bar
}
|