// !DIAGNOSTICS: -UNUSED_PARAMETER open class B(x: R1, y: R2) class A0 { constructor(x: T1, y: T2): this(x, y) constructor(x: T1, y: T2, z: T2): this(x, 1) // ok, delegates to constructor(x: T1, y: Int) constructor(x: T1, y: Int): this(x, "") constructor(x: T1): this(x, 1) constructor(x: T1, y: T2, z: String): this(y, x) } class A1 : B { constructor(x: T1, y: T2): super(x, y) constructor(x: T1, y: Int): super(x, y) constructor(x: T1, y: T1, z: T1): super(x, y) } class A2 : B { constructor(x: T1, y: T2): super(x, y) constructor(x: T1, y: Int): super(x, y) constructor(x: T1, y: T1, z: T1): super(x, y) constructor(x: T1, y: T2, z: String): super(y, 1) }