// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION external class A { class B { class A { @nativeSetter fun set(a: String, v: Any?): Any? = noImpl @nativeSetter fun put(a: Number, v: String) { noImpl } @nativeSetter fun foo(a: Int, v: String) { noImpl } @nativeSetter fun set4(a: Double, v: String): Any = noImpl @nativeSetter fun set5(a: Double, v: String): CharSequence = noImpl companion object { @nativeSetter fun set(a: String, v: Any?): Any? = noImpl @nativeSetter fun put(a: Number, v: String) { noImpl } @nativeSetter fun foo(a: Int, v: String) { noImpl } @nativeSetter fun set4(a: Double, v: String): Any = noImpl @nativeSetter fun set5(a: Double, v: String): CharSequence = noImpl } } class B { @nativeSetter val foo: Int = noImpl @nativeSetter object Obj1 {} companion object { @nativeSetter val foo: Int = noImpl @nativeSetter object Obj2 {} } } class C { @nativeSetter fun set6(a: Double, v: String): Number = noImpl @nativeSetter fun set(): Any? = noImpl @nativeSetter fun set(a: A): Any? = noImpl @nativeSetter fun set(a: String, v: Any, v2: Any) { noImpl } @nativeSetter fun set(a: A, v: Any?) { noImpl } @nativeSetter fun foo(a: Double = noImpl, v: String = noImpl): String = noImpl } object obj { @nativeSetter fun set(): Any? = noImpl @nativeSetter fun set(a: A): Any? = noImpl @nativeSetter fun set(a: String, v: Any, v2: Any) { noImpl } @nativeSetter fun set(a: A, v: Any?) { noImpl } @nativeSetter fun foo(a: Int, v: String = noImpl): String = noImpl } } }