// DIAGNOSTICS: -CONFLICTING_JVM_DECLARATIONS, -MISPLACED_TYPE_PARAMETER_CONSTRAINTS class MemberScope { class TestBasic { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() constructor() } class TestIdenticalPrimaryAndSecondaryConstructorsA constructor() { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() : this() } class TestIdenticalPrimaryAndSecondaryConstructorsB() { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() : this() } class TestIdenticalDelegatedPrimaryConstructorCalls constructor(placeholder: UserKlass) { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() : this(UserKlass()) constructor() : this(UserKlass()) } open class SuperConstructorSource constructor(placeholder: UserKlass) class TestIdenticalDelegatedSuperConstructorCalls: SuperConstructorSource { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() : super(UserKlass()) constructor() : super(UserKlass()) } class TestIdenticalValueParameters { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: UserKlass) constructor(arg: UserKlass) } class TestDifferentlyNamedValueParameters { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(argA: UserKlass) constructor(argB: UserKlass) } class TestTypeAliasedValueParameterTypes { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: UserKlass) constructor(arg: SameUserKlass) } class TestTypeAliasedValueParameterTypesReverse { constructor(arg: UserKlass) @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: SameUserKlass) } class TestMultipleIdenticalValueParameters { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg1: UserKlassA, arg2: UserKlassB) constructor(arg1: UserKlassA, arg2: UserKlassB) } class TestMultipleDifferentlyNamedValueParametersA { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg1: UserKlassA, arg2A: UserKlassB) constructor(arg1: UserKlassA, arg2B: UserKlassB) } class TestMultipleDifferentlyNamedValueParametersB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg1A: UserKlassA, arg2A: UserKlassB) constructor(arg1B: UserKlassA, arg2B: UserKlassB) } class TestMultipleTypeAliasedValueParameterTypesA { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg1: UserKlassA, arg2: UserKlassB) constructor(arg1: UserKlassA, arg2: SameUserKlassB) } class TestMultipleTypeAliasedValueParameterTypesAReverse { constructor(arg1: UserKlassA, arg2: UserKlassB) @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg1: UserKlassA, arg2: SameUserKlassB) } class TestMultipleTypeAliasedValueParameterTypesB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg1: UserKlassA, arg2: UserKlassB) constructor(arg1: SameUserKlassA, arg2: SameUserKlassB) } class TestMultipleTypeAliasedValueParameterTypesBReverse { constructor(arg1: UserKlassA, arg2: UserKlassB) @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg1: SameUserKlassA, arg2: SameUserKlassB) } class TestValueParameterWithIdenticalDefaultArguments { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: UserKlass = defaultArgument) constructor(arg: UserKlass = defaultArgument) } class TestDifferencesInValueParameterDefaultArgumentsPresence { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: UserKlass = defaultArgument) constructor(arg: UserKlass) } class TestDifferencesInValueParameterDefaultArgumentsPresenceReverse { constructor(arg: UserKlass = defaultArgument) @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: UserKlass) } class TestValueParameterWithDifferentDefaultArguments { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: UserKlass = defaultArgumentA) constructor(arg: UserKlass = defaultArgumentB) } class TestValueParameterWithAliasedDefaultArguments { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: UserKlass = defaultArgument) constructor(arg: UserKlass = sameDefaultArgument) } class TestValueParameterWithAliasedDefaultArgumentsReverse { constructor(arg: UserKlass = defaultArgument) @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: UserKlass = sameDefaultArgument) } class TestIdenticalTypeParametersA { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() constructor() } class TestIdenticalTypeParametersB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: T) constructor(arg: T) } class TestIdenticalTypeParametersC { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: Invariant) constructor(arg: Invariant) } class TestMultipleIdenticalTypeParameters { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() constructor() } class TestTypeParameterWithIdenticalUpperBoundsA { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() constructor() } class TestTypeParameterWithIdenticalUpperBoundsB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: T) constructor(arg: T) } class TestTypeParameterWithIdenticalUpperBoundsC { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: Invariant) constructor(arg: Invariant) } class TestTypeParameterWithMultipleIdenticalUpperBoundsAA where T: UserInterfaceA, T: UserInterfaceB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() constructor() } class TestTypeParameterWithMultipleIdenticalUpperBoundsAB where T: UserInterfaceA, T: UserInterfaceB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: T) constructor(arg: T) } class TestTypeParameterWithMultipleIdenticalUpperBoundsAC where T: UserInterfaceA, T: UserInterfaceB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: Invariant) constructor(arg: Invariant) } class TestTypeParameterWithMultipleIdenticalUpperBoundsBA where T: UserInterfaceB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor() constructor() } class TestTypeParameterWithMultipleIdenticalUpperBoundsBB where T: UserInterfaceB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: T) constructor(arg: T) } class TestTypeParameterWithMultipleIdenticalUpperBoundsBC where T: UserInterfaceB { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) constructor(arg: Invariant) constructor(arg: Invariant) } class TestIdenticalPrivateVisibility { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) private constructor() private constructor() } class TestIdenticalInternalVisibility { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) internal constructor() internal constructor() } open class TestIdenticalProtectedVisibility { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) protected constructor() protected constructor() } class TestDifferencesInPrivateAndPublicVisibilities { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) private constructor() public constructor() } class TestDifferencesInPrivateAndPublicVisibilitiesReverse { private constructor() @Deprecated(message = "", level = DeprecationLevel.HIDDEN) public constructor() } class TestDifferencesInInternalAndPublicVisibilities { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) internal constructor() public constructor() } class TestDifferencesInInternalAndPublicVisibilitiesReverse { internal constructor() @Deprecated(message = "", level = DeprecationLevel.HIDDEN) public constructor() } open class TestDifferencesInProtectedAndPublicVisibilities { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) protected constructor() public constructor() } open class TestDifferencesInProtectedAndPublicVisibilitiesReverse { protected constructor() @Deprecated(message = "", level = DeprecationLevel.HIDDEN) public constructor() } class TestDifferencesInPrivateAndInternalVisibilities { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) private constructor() internal constructor() } class TestDifferencesInPrivateAndInternalVisibilitiesReverse { private constructor() @Deprecated(message = "", level = DeprecationLevel.HIDDEN) internal constructor() } open class TestDifferencesInProtectedAndPrivateVisibilities { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) protected constructor() private constructor() } open class TestDifferencesInProtectedAndPrivateVisibilitiesReverse { protected constructor() @Deprecated(message = "", level = DeprecationLevel.HIDDEN) private constructor() } open class TestDifferencesInProtectedAndInternalVisibilities { @Deprecated(message = "", level = DeprecationLevel.HIDDEN) protected constructor() internal constructor() } open class TestDifferencesInProtectedAndInternalVisibilitiesReverse { protected constructor() @Deprecated(message = "", level = DeprecationLevel.HIDDEN) internal constructor() } } open class Invariant class UserKlass class UserKlassA class UserKlassB typealias SameUserKlass = UserKlass typealias SameUserKlassA = UserKlassA typealias SameUserKlassB = UserKlassB val defaultArgument = UserKlass() val defaultArgumentA = UserKlass() val defaultArgumentB = UserKlass() val sameDefaultArgument = defaultArgument interface UserInterface interface UserInterfaceA interface UserInterfaceB