class Test1 { val x: T1 field = x get val y: T2 field = y get constructor(x: T1, y: T2) /* primary */ { super/*Any*/() /* () */ } } class Test2 { val y: String field = y get inner class TestInner { val z: Z field = z get constructor(z: Z) /* primary */ { super/*Any*/() /* () */ } constructor(z: Z, i: Int) { .this/*TestInner*/(z = z) } } constructor(x: Int, y: String) /* primary */ { super/*Any*/() /* () */ } } class Test3 { val x: Int field = x get val y: String field = y get constructor(x: Int, y: String = "") /* primary */ { super/*Any*/() /* () */ } } class Test4 { val x: Int field = x get constructor(x: Int) /* primary */ { super/*Any*/() /* () */ } constructor(x: Int, y: Int = 42) { this/*Test4*/(x = x.plus(other = y)) } }