open class NoC class NoC1 : NoC class WithC0() : NoC() open class WithC1() : NoC class NoC2 : WithC1 class NoC3 : WithC1() class WithC2() : WithC1 class NoPC { this() {} } class WithPC0() { this(a : Int) : this() {} } class WithPC1(a : Int) { this() {} this(b : Long) : this("") {} this(s : String) : this(1) {} this(b : Char) : this("", 2) {} this(b : Byte) : this(""), this(1) {} } class Foo() : WithPC0, this() { } class WithCPI_Dup(x : Int) { var x : Int } class WithCPI(x : Int) { val a = 1 val b : Int = $a val xy : Int = x } class NoCPI { val a = 1 var ab = 1 get() = 1 set(v) {} }