// FIR_IDENTICAL // DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS ////////////////////////////////////////////////////////////////////////////////////////////////// /// READ THIS TEST AS A TABLE IN IDE (It may be not correctly displayed in Space or GitHub)!!! /// ////////////////////////////////////////////////////////////////////////////////////////////////// // a = final + not initialized in place + deferred init // e = final + not initialized in place // c = final + initialized in place // b = open + not initialized in place + deferred init // f = open + not initialized in place // d = open + initialized in place open class Foo { // no setter; setter with field; setter with empty body; setter no field; // no getter var a00: Int; var a01: Int; set(v) { field = v }; var a02: Int; set; var a03: Int; set(v) {}; var e00: Int; var e01: Int; set(v) { field = v }; var e02: Int; set; var e03: Int; set(v) {}; var c00: Int = 1; var c01: Int = 1; set(v) { field = v }; var c02: Int = 1; set; var c03: Int = 1; set(v) {}; open var b00: Int; open var b01: Int; set(v) { field = v }; open var b02: Int; set; open var b03: Int; set(v) {}; open var f00: Int; open var f01: Int; set(v) { field = v }; open var f02: Int; set; open var f03: Int; set(v) {}; open var d00: Int = 1; open var d01: Int = 1; set(v) { field = v }; open var d02: Int = 1; set; open var d03: Int = 1; set(v) {}; // getter with field var a10: Int; get() = field; var a11: Int; set(v) { field = v } get() = field; var a12: Int; set get() = field; var a13: Int; set(v) {} get() = field; var e10: Int; get() = field; var e11: Int; set(v) { field = v } get() = field; var e12: Int; set get() = field; var e13: Int; set(v) {} get() = field; var c10: Int = 1; get() = field; var c11: Int = 1; set(v) { field = v } get() = field; var c12: Int = 1; set get() = field; var c13: Int = 1; set(v) {} get() = field; open var b10: Int; get() = field; open var b11: Int; set(v) { field = v } get() = field; open var b12: Int; set get() = field; open var b13: Int; set(v) {} get() = field; open var f10: Int; get() = field; open var f11: Int; set(v) { field = v } get() = field; open var f12: Int; set get() = field; open var f13: Int; set(v) {} get() = field; open var d10: Int = 1; get() = field; open var d11: Int = 1; set(v) { field = v } get() = field; open var d12: Int = 1; set get() = field; open var d13: Int = 1; set(v) {} get() = field; // getter with empty body var a20: Int; get; var a21: Int; set(v) { field = v } get; var a22: Int; set get; var a23: Int; set(v) {} get; var e20: Int; get; var e21: Int; set(v) { field = v } get; var e22: Int; set get; var e23: Int; set(v) {} get; var c20: Int = 1; get; var c21: Int = 1; set(v) { field = v } get; var c22: Int = 1; set get; var c23: Int = 1; set(v) {} get; open var b20: Int; get; open var b21: Int; set(v) { field = v } get; open var b22: Int; set get; open var b23: Int; set(v) {} get; open var f20: Int; get; open var f21: Int; set(v) { field = v } get; open var f22: Int; set get; open var f23: Int; set(v) {} get; open var d20: Int = 1; get; open var d21: Int = 1; set(v) { field = v } get; open var d22: Int = 1; set get; open var d23: Int = 1; set(v) {} get; // getter no field var a30: Int; get() = 1; var a31: Int; set(v) { field = v } get() = 1; var a32: Int; set get() = 1; var a33: Int; set(v) {} get() = 1; var e30: Int; get() = 1; var e31: Int; set(v) { field = v } get() = 1; var e32: Int; set get() = 1; var e33: Int; set(v) {} get() = 1; var c30: Int = 1; get() = 1; var c31: Int = 1; set(v) { field = v } get() = 1; var c32: Int = 1; set get() = 1; var c33: Int = 1; set(v) {} get() = 1; open var b30: Int; get() = 1; open var b31: Int; set(v) { field = v } get() = 1; open var b32: Int; set get() = 1; open var b33: Int; set(v) {} get() = 1; open var f30: Int; get() = 1; open var f31: Int; set(v) { field = v } get() = 1; open var f32: Int; set get() = 1; open var f33: Int; set(v) {} get() = 1; open var d30: Int = 1; get() = 1; open var d31: Int = 1; set(v) { field = v } get() = 1; open var d32: Int = 1; set get() = 1; open var d33: Int = 1; set(v) {} get() = 1; init { a00 = 1 a01 = 1 a02 = 1 a03 = 1 a10 = 1 a11 = 1 a12 = 1 a13 = 1 a20 = 1 a21 = 1 a22 = 1 a23 = 1 a30 = 1 a31 = 1 a32 = 1 a33 = 1 b00 = 1 b01 = 1 b02 = 1 b03 = 1 b10 = 1 b11 = 1 b12 = 1 b13 = 1 b20 = 1 b21 = 1 b22 = 1 b23 = 1 b30 = 1 b31 = 1 b32 = 1 b33 = 1 } }