1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
trait X { trait A { type T >: Int <: Int } val x : A var n : x.T = 3 } trait Y extends X { trait B { type T >: String <: String } lazy val x : A with B = {println(""); x} n = "foo" } object Test extends App { new Y {} }