blob: 2106b2d6d7363885b54e1829f3d7e5aac51ce51d (
plain) (
tree)
|
|
trait U {
trait U1 {
class X
}
type U11 <: U1
val u : U11 = null.asInstanceOf[U11]
}
trait A extends U
trait B extends U {
def foo = ""
class U11 extends U1 { class X extends super.X { foo } } // refer to foo to add $outer pointer
override val u = new U11
}
class C {
val ab: A with B = new A with B // `B with A` works.
def foo: Unit = {
// fails
new ab.u.X
// works:
val u = ab.u
new u.X
}
}
object Test {
def main(args: Array[String]): Unit = {
// java.lang.NoSuchMethodError: A.u()LB$U11;
// at C.foo(t6677b.scala:23)
new C().foo
}
}
|