1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
class A[T] class B { def m(a: A[this.type] = new A[this.type]) { } } class C { def foo(a: Int, b: Int = 0) = 0 def foo() = 0 } object Test { def newB = new B newB.m() val stableB = new B stableB.m() def f { println((new C).foo(0)) } }