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