1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class C1 { type T def this(x: T) { this() } } class C1a[T] { def this(x: T) { this() } // works, no error here } class C2(x: Int) { def this(a: Int, b: Int = x) { this(b) } } class C3 { val x = 0 def this(a: Int = x) { this() } }