// FIR_DIFFERENCE
// K1 doesn't detect a clash between constructors in one class.
// It doesn't seem correct (KT-64976) because it leads to a clash in the generated JS code. K2 works correctly.
// DIAGNOSTICS: -OPT_IN_USAGE

@JsExport
class ClassA {
    val x: String

    @JsName("constructorA")
    constructor(y: String) {
        x = "fromString:$y"
    }

    @JsName("constructorOther")
    constructor(y: Int) {
        x = "fromInt:$y"
    }
}

@JsExport
class ClassB {
    val x: String

    @JsName("constructorB")
    constructor(y: String) {
        x = "fromString:$y"
    }

    @JsName("constructorOther")
    constructor(y: Int) {
        x = "fromInt:$y"
    }
}

@JsExport
class ClassC {
    val x: String

    @JsName("constructorC")
    constructor(y: String) {
        x = "fromString:$y"
    }

    @JsName("constructorC")
    constructor(y: Int) {
        x = "fromInt:$y"
    }
}
