f07028959d
^KT-61862 Related
255 lines
6.4 KiB
Kotlin
Vendored
255 lines
6.4 KiB
Kotlin
Vendored
// FIR_IDENTICAL
|
|
|
|
// FILE: FinalExternalClass.kt
|
|
package FinalExternalClass
|
|
external class ExternalClass {
|
|
fun test(): String
|
|
fun test(x: Int): String
|
|
fun test(x: String): String
|
|
fun test(vararg x: Any): String
|
|
|
|
val test: String
|
|
|
|
@JsName("test")
|
|
fun notTest(): String
|
|
|
|
@JsName("test")
|
|
val notTest: String
|
|
}
|
|
|
|
// FILE: OpenExternalClassWithFinalMethods.kt
|
|
package OpenExternalClassWithFinalMethods
|
|
open external class ExternalClass {
|
|
fun test(): String
|
|
fun test(x: Int): String
|
|
fun test(x: String): String
|
|
fun test(vararg x: Any): String
|
|
|
|
val test: String
|
|
|
|
@JsName("test")
|
|
fun notTest(): String
|
|
|
|
@JsName("test")
|
|
val notTest: String
|
|
}
|
|
|
|
class MyClass1 : ExternalClass() {
|
|
fun test(x: List<Int>) = x
|
|
fun test(vararg x: Int) = x
|
|
|
|
fun Int.test() {}
|
|
val Int.test get() = 1
|
|
|
|
@JsName("test") fun notTest2() {}
|
|
}
|
|
|
|
class MyClass2 : ExternalClass() {
|
|
fun test(x: List<Int>) = x
|
|
fun test(vararg x: Int) = x
|
|
|
|
fun Int.test() {}
|
|
val Int.test get() = 1
|
|
|
|
@JsName("test") val notTest2 = 1
|
|
}
|
|
|
|
// FILE: OpenExternalClassWithOpenMethods.kt
|
|
package OpenExternalClassWithOpenMethods
|
|
open external class ExternalClass {
|
|
open fun test(): String
|
|
open fun test(x: Int): String
|
|
open fun test(x: String): String
|
|
open fun test(vararg x: Any): String
|
|
|
|
open val test: String
|
|
|
|
@JsName("test")
|
|
open fun notTest(): String
|
|
|
|
@JsName("test")
|
|
open val notTest: String
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
fun test(x: List<Int>) = x
|
|
fun test(vararg x: Int) = x
|
|
|
|
fun Int.test() {}
|
|
val Int.test get() = 1
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithChildOverload.kt
|
|
package OpenInheritedMethodClashedWithChildOverload
|
|
open external class ExternalClass {
|
|
<!JS_NAME_CLASH!>open fun test(x: Int): String<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
<!JS_NAME_CLASH!>fun test()<!> {}
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithChildProperty.kt
|
|
package OpenInheritedMethodClashedWithChildProperty
|
|
open external class ExternalClass {
|
|
<!JS_NAME_CLASH!>open fun test(x: Int): String<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
<!JS_NAME_CLASH!>val test<!> = 1
|
|
}
|
|
|
|
// FILE: OpenInheritedPropertyClashedWithChildMethod.kt
|
|
package OpenInheritedPropertyClashedWithChildMethod
|
|
open external class ExternalClass {
|
|
<!JS_NAME_CLASH!>open val test: String<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
<!JS_NAME_CLASH!>fun test()<!> {}
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithChildOverridde.kt
|
|
package OpenInheritedMethodClashedWithChildOverridde
|
|
open external class ExternalClass {
|
|
open fun test(x: Int): Int
|
|
<!JS_NAME_CLASH!>open fun test(x: String): String<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
<!JS_NAME_CLASH!>override fun test(x: Int)<!> = x
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithChildPropertyOverridde.kt
|
|
package OpenInheritedMethodClashedWithChildPropertyOverridde
|
|
open external class ExternalClass {
|
|
open val test: Int
|
|
<!JS_NAME_CLASH!>open fun test(x: String): String<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
<!JS_NAME_CLASH!>override val test<!> = 1
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithChildMethodJsName.kt
|
|
package OpenInheritedMethodClashedWithChildMethodJsName
|
|
open external class ExternalClass {
|
|
<!JS_NAME_CLASH!>open fun test(x: String): String<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
<!JS_NAME_CLASH!>@JsName("test") fun notTest(x: String)<!> = x
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithChildPropertyJsName.kt
|
|
package OpenInheritedMethodClashedWithChildPropertyJsName
|
|
open external class ExternalClass {
|
|
<!JS_NAME_CLASH!>open fun test(x: String): String<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
<!JS_NAME_CLASH!>@JsName("test") val notTest<!> = 1
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithChildPropertyGetterJsName.kt
|
|
package OpenInheritedMethodClashedWithChildPropertyGetterJsName
|
|
open external class ExternalClass {
|
|
<!JS_NAME_CLASH!>open fun test(x: String): String<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
val notTest: Int
|
|
<!JS_NAME_CLASH!>@JsName("test") get()<!> = 1
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithChildPropertySetterJsName.kt
|
|
package OpenInheritedMethodClashedWithChildPropertySetterJsName
|
|
open external class ExternalClass {
|
|
<!JS_NAME_CLASH!>open fun test(x: Int): Int<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass() {
|
|
var notTest: Int
|
|
@JsName("getterTest") get() = 1
|
|
<!JS_NAME_CLASH!>@JsName("test") set(value)<!> { test(value) }
|
|
}
|
|
|
|
// FILE: OpenInheritedMethodClashedWithOtherInheritedMethod.kt
|
|
package OpenInheritedMethodClashedWithOtherInheritedMethod
|
|
open external class ExternalClass {
|
|
open fun test(x: String): String
|
|
}
|
|
|
|
interface MyInterface {
|
|
@JsName("test") fun noTest(x: Int) = 1
|
|
}
|
|
|
|
class <!JS_FAKE_NAME_CLASH!>MyClass<!> : ExternalClass(), MyInterface
|
|
|
|
// FILE: OpenInheritedMethodNotClashedWithAbstractMethod.kt
|
|
package OpenInheritedMethodNotClashedWithAbstractMethod
|
|
open external class ExternalClass {
|
|
open fun test(): String
|
|
}
|
|
|
|
interface MyInterface {
|
|
fun test(): String
|
|
}
|
|
|
|
class MyClass : ExternalClass(), MyInterface
|
|
|
|
// FILE: OpenInheritedMethodNotClashedWithExternalAbstractMethod.kt
|
|
package OpenInheritedMethodNotClashedWithExternalAbstractMethod
|
|
open external class ExternalClass {
|
|
open fun test(): String
|
|
}
|
|
|
|
external interface MyInterface {
|
|
fun test(): String
|
|
}
|
|
|
|
class MyClass : ExternalClass(), MyInterface
|
|
|
|
// FILE: OpenInheritedMethodNotClashedWithAbstractMethodWithSameName.kt
|
|
package OpenInheritedMethodNotClashedWithAbstractMethodWithSameName
|
|
open external class ExternalClass {
|
|
open fun test(x: Int): Int
|
|
}
|
|
|
|
interface MyInterface {
|
|
@JsName("test") fun test(x: Int): Int
|
|
}
|
|
|
|
class MyClass : ExternalClass(), MyInterface
|
|
|
|
// FILE: InheritGenericOutExternalClass.kt
|
|
package InheritGenericOutExternalClass
|
|
open external class ExternalClass<out T> {
|
|
open fun test(x: Int?): T
|
|
open fun test(x: Int?, y: String?): T
|
|
}
|
|
|
|
class MyClass : ExternalClass<Unit>()
|
|
|
|
// FILE: InheritGenericInExternalClass.kt
|
|
package InheritGenericInExternalClass
|
|
open external class ExternalClass<in T> {
|
|
open fun test(x: T?): Int
|
|
open fun test(x: T?, y: String?): Int
|
|
}
|
|
|
|
class MyClass : ExternalClass<Int>() {
|
|
fun test(x: Int?, y: Int?) = x ?: y ?: 1
|
|
}
|
|
|
|
// FILE: InheritGenericInExternalClassClash.kt
|
|
package InheritGenericInExternalClassClash
|
|
open external class ExternalClass<in T> {
|
|
open fun test(x: T?): Int
|
|
<!JS_NAME_CLASH!>open fun test(x: T?, y: String?): Int<!>
|
|
}
|
|
|
|
class MyClass : ExternalClass<Int>() {
|
|
<!JS_NAME_CLASH!>override fun test(x: Int?)<!> = x ?: 1
|
|
}
|