[FIR JS] Add more tests for JS_NAME_CLASH and JS_FAKE_NAME_CLASH

^KT-59425 Related
^KT-59370 Related
This commit is contained in:
Alexander Korepanov
2023-09-04 20:29:23 +02:00
committed by Space Team
parent 6bb939c6cb
commit ea9e2eb41a
20 changed files with 2366 additions and 0 deletions
@@ -0,0 +1,209 @@
// FIR_IDENTICAL
// FILE: FinalClass.kt
package FinalClass
class Class {
<!JS_NAME_CLASH!>fun test()<!> {}
fun test(x: Int) = x
fun test(x: String) = x
fun test(vararg x: Any) = x
<!JS_NAME_CLASH!>val test<!> = 0
fun Int.test() {}
fun Int.test(x: Int) = x
fun String.test() {}
fun String.test(x: String) = x
val Int.test
get() = 0
var String.test
get() = ""
set(value) { test(value) }
}
// FILE: OpenClassWithFinalMethods.kt
package OpenClassWithFinalMethods
open class Class {
fun test() {}
fun test(x: Int) = x
fun test(x: String) = x
fun test(vararg x: Any) = x
fun Int.test() {}
fun Int.test(x: Int) = x
fun String.test() {}
fun String.test(x: String) = x
}
class MyClass1 : Class() {
fun test(x: Char) = x
fun Char.test() {}
fun Char.test(x: Char) = x
}
// FILE: OpenClassWithOpenMethods.kt
package OpenClassWithOpenMethods
open class Class {
open fun test() {}
open fun test(x: Int) = x
open fun test(x: String) = x
open fun test(vararg x: Any) = x
open fun Int.test() {}
open fun Int.test(x: Int) = x
open fun String.test() {}
open fun String.test(x: String) = x
}
class MyClass : Class() {
fun test(x: List<Int>) = x
fun test(vararg x: Int) = x
fun Char.test() {}
val Char.test get() = 'w'
}
// FILE: OpenInheritedMethodClashedWithChildOverload.kt
package OpenInheritedMethodClashedWithChildOverload
open class ExternalClass {
<!JS_NAME_CLASH!>@JsName("test") open fun noTest(x: String): String<!> = x
}
class MyClass : ExternalClass() {
<!JS_NAME_CLASH!>fun test()<!> {}
}
// FILE: OpenInheritedMethodClashedWithChildProperty.kt
package OpenInheritedMethodClashedWithChildProperty
open class Class {
<!JS_NAME_CLASH!>@JsName("test") open fun test(x: String): String<!> = x
}
class MyClass : Class() {
<!JS_NAME_CLASH!>val test<!> = 1
}
// FILE: OpenInheritedPropertyClashedWithChildMethod.kt
package OpenInheritedPropertyClashedWithChildMethod
open class Class {
<!JS_NAME_CLASH!>open val test: String<!> = ""
}
class MyClass : Class() {
<!JS_NAME_CLASH!>fun test()<!> {}
}
// FILE: OpenInheritedMethodClashedWithChildMethodJsName.kt
package OpenInheritedMethodClashedWithChildMethodJsName
open class Class {
<!JS_NAME_CLASH!>open fun test()<!> {}
}
class MyClass : Class() {
<!JS_NAME_CLASH!>@JsName("test") fun notTest(x: String)<!> = x
}
// FILE: OpenInheritedMethodClashedWithChildPropertyJsName.kt
package OpenInheritedMethodClashedWithChildPropertyJsName
open class Class {
<!JS_NAME_CLASH!>open fun test()<!> {}
}
class MyClass : Class() {
<!JS_NAME_CLASH!>@JsName("test") val notTest<!> = 1
}
// FILE: OpenInheritedMethodClashedWithChildPropertyGetterJsName.kt
package OpenInheritedMethodClashedWithChildPropertyGetterJsName
open class Class {
<!JS_NAME_CLASH!>open fun test()<!> {}
}
class MyClass : Class() {
val notTest: Int
<!JS_NAME_CLASH!>@JsName("test") get()<!> = 1
}
// FILE: OpenInheritedMethodClashedWithChildPropertySetterJsName.kt
package OpenInheritedMethodClashedWithChildPropertySetterJsName
open class Class {
<!JS_NAME_CLASH!>open fun test()<!> {}
}
class MyClass : Class() {
fun <T> ignore(x: T) = x
var notTest: Int
@JsName("getterTest") get() = 1
<!JS_NAME_CLASH!>@JsName("test") set(value)<!> { ignore(value) }
}
// FILE: OpenInheritedMethodClashedWithOtherInheritedMethod.kt
package OpenInheritedMethodClashedWithOtherInheritedMethod
open class Class {
open fun test() {}
}
interface MyInterface {
@JsName("test") fun noTest(x: Int) = 1
}
class <!JS_FAKE_NAME_CLASH!>MyClass<!> : Class(), MyInterface
// FILE: OpenInheritedMethodNotClashedWithAbstractMethod.kt
package OpenInheritedMethodNotClashedWithAbstractMethod
open class Class {
open fun test(): String = ""
}
interface MyInterface {
fun test(): String
}
class MyClass : Class(), MyInterface
// FILE: OpenInheritedMethodNotClashedWithDefaultInterfaceMethod.kt
package OpenInheritedMethodNotClashedWithDefaultInterfaceMethod
open class Class {
open fun test(): String = "0"
}
interface MyInterface {
fun test(): String = "1"
}
class MyClass : Class(), MyInterface {
override fun test(): String = "2"
}
// FILE: InterfaceImplementationWithSameJsNameClash.kt
package MultipleInterfaceInheritanceWithSameJsNameClash
interface MyInterface1 {
@JsName("test") fun test1(): Int
}
class MyClass : MyInterface1 {
<!JS_NAME_CLASH!>override fun test1()<!> = 1
<!JS_NAME_CLASH!>@JsName("test") fun test2(): Int<!> = 2
}
// FILE: MultipleInterfaceImplementationWithSameJsNameClash.kt
package MultipleInterfaceImplementationWithSameJsNameClash
interface MyInterface1 {
@JsName("test") fun test1(): Int
}
interface MyInterface2 {
@JsName("test") fun test2(): Int
}
class MyClass : MyInterface1, MyInterface2 {
<!JS_NAME_CLASH!>override fun test1()<!> = 1
<!JS_NAME_CLASH!>override fun test2()<!> = 2
}
@@ -0,0 +1,361 @@
package
package FinalClass {
public final class Class {
public constructor Class()
public final val test: kotlin.Int = 0
public final val kotlin.Int.test: kotlin.Int
public final var kotlin.String.test: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun test(): kotlin.Unit
public final fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.Array<out kotlin.Any>
public final fun test(/*0*/ x: kotlin.Int): kotlin.Int
public final fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.test(): kotlin.Unit
public final fun kotlin.Int.test(/*0*/ x: kotlin.Int): kotlin.Int
public final fun kotlin.String.test(): kotlin.Unit
public final fun kotlin.String.test(/*0*/ x: kotlin.String): kotlin.String
}
}
package MultipleInterfaceImplementationWithSameJsNameClash {
public final class MyClass : MultipleInterfaceImplementationWithSameJsNameClash.MyInterface1, MultipleInterfaceImplementationWithSameJsNameClash.MyInterface2 {
public constructor MyClass()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ fun test1(): kotlin.Int
public open override /*1*/ fun test2(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface1 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public abstract fun test1(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface2 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public abstract fun test2(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package MultipleInterfaceInheritanceWithSameJsNameClash {
public final class MyClass : MultipleInterfaceInheritanceWithSameJsNameClash.MyInterface1 {
public constructor MyClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ fun test1(): kotlin.Int
@kotlin.js.JsName(name = "test") public final fun test2(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface1 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public abstract fun test1(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenClassWithFinalMethods {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun test(): kotlin.Unit
public final fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.Array<out kotlin.Any>
public final fun test(/*0*/ x: kotlin.Int): kotlin.Int
public final fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.test(): kotlin.Unit
public final fun kotlin.Int.test(/*0*/ x: kotlin.Int): kotlin.Int
public final fun kotlin.String.test(): kotlin.Unit
public final fun kotlin.String.test(/*0*/ x: kotlin.String): kotlin.String
}
public final class MyClass1 : OpenClassWithFinalMethods.Class {
public constructor MyClass1()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public final override /*1*/ /*fake_override*/ fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.Array<out kotlin.Any>
public final fun test(/*0*/ x: kotlin.Char): kotlin.Char
public final override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.Int
public final override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Char.test(): kotlin.Unit
public final fun kotlin.Char.test(/*0*/ x: kotlin.Char): kotlin.Char
public final override /*1*/ /*fake_override*/ fun kotlin.Int.test(): kotlin.Unit
public final override /*1*/ /*fake_override*/ fun kotlin.Int.test(/*0*/ x: kotlin.Int): kotlin.Int
public final override /*1*/ /*fake_override*/ fun kotlin.String.test(): kotlin.Unit
public final override /*1*/ /*fake_override*/ fun kotlin.String.test(/*0*/ x: kotlin.String): kotlin.String
}
}
package OpenClassWithOpenMethods {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.Unit
public open fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.Array<out kotlin.Any>
public open fun test(/*0*/ x: kotlin.Int): kotlin.Int
public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public open fun kotlin.Int.test(): kotlin.Unit
public open fun kotlin.Int.test(/*0*/ x: kotlin.Int): kotlin.Int
public open fun kotlin.String.test(): kotlin.Unit
public open fun kotlin.String.test(/*0*/ x: kotlin.String): kotlin.String
}
public final class MyClass : OpenClassWithOpenMethods.Class {
public constructor MyClass()
public final val kotlin.Char.test: kotlin.Char
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.Array<out kotlin.Any>
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.Int
public final fun test(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.IntArray
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public final fun test(/*0*/ x: kotlin.collections.List<kotlin.Int>): kotlin.collections.List<kotlin.Int>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Char.test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun kotlin.Int.test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun kotlin.Int.test(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun kotlin.String.test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun kotlin.String.test(/*0*/ x: kotlin.String): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildMethodJsName {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildMethodJsName.Class {
public constructor MyClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public final fun notTest(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildOverload {
public open class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open fun noTest(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildOverload.ExternalClass {
public constructor MyClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open override /*1*/ /*fake_override*/ fun noTest(/*0*/ x: kotlin.String): kotlin.String
public final fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildProperty {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildProperty.Class {
public constructor MyClass()
public final val test: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildPropertyGetterJsName {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildPropertyGetterJsName.Class {
public constructor MyClass()
@get:kotlin.js.JsName(name = "test") public final val notTest: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildPropertyJsName {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildPropertyJsName.Class {
public constructor MyClass()
@kotlin.js.JsName(name = "test") public final val notTest: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildPropertySetterJsName {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildPropertySetterJsName.Class {
public constructor MyClass()
@get:kotlin.js.JsName(name = "getterTest") @set:kotlin.js.JsName(name = "test") public final var notTest: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun </*0*/ T> ignore(/*0*/ x: T): T
public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithOtherInheritedMethod {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithOtherInheritedMethod.Class, OpenInheritedMethodClashedWithOtherInheritedMethod.MyInterface {
public constructor MyClass()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open override /*1*/ /*fake_override*/ fun noTest(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open fun noTest(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodNotClashedWithAbstractMethod {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodNotClashedWithAbstractMethod.Class, OpenInheritedMethodNotClashedWithAbstractMethod.MyInterface {
public constructor MyClass()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun test(): kotlin.String
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodNotClashedWithDefaultInterfaceMethod {
public open class Class {
public constructor Class()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodNotClashedWithDefaultInterfaceMethod.Class, OpenInheritedMethodNotClashedWithDefaultInterfaceMethod.MyInterface {
public constructor MyClass()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ fun test(): kotlin.String
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedPropertyClashedWithChildMethod {
public open class Class {
public constructor Class()
public open val test: kotlin.String = ""
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedPropertyClashedWithChildMethod.Class {
public constructor MyClass()
public open override /*1*/ /*fake_override*/ val test: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -0,0 +1,11 @@
// FIR_DIFFERENCE
// This case is only relevant for the JS Legacy BE and is not applicable to the JS IR backend,
// as the IR BE can resolve such name collisions.
open class Class {
fun Int.test() {}
val Int.test
get() = 0
}
class MyClass1 : Class()
@@ -0,0 +1,11 @@
// FIR_DIFFERENCE
// This case is only relevant for the JS Legacy BE and is not applicable to the JS IR backend,
// as the IR BE can resolve such name collisions.
open class Class {
fun Int.test() {}
val Int.test
get() = 0
}
class <!JS_FAKE_NAME_CLASH!>MyClass1<!> : Class()
@@ -0,0 +1,20 @@
package
public open class Class {
public constructor Class()
public final val kotlin.Int.test: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.test(): kotlin.Unit
}
public final class MyClass1 : Class {
public constructor MyClass1()
public final override /*1*/ /*fake_override*/ val kotlin.Int.test: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final override /*1*/ /*fake_override*/ fun kotlin.Int.test(): kotlin.Unit
}
@@ -0,0 +1,207 @@
// FIR_IDENTICAL
@file:Suppress("UNUSED_PARAMETER", "CONFLICTING_OVERLOADS", "REDECLARATION")
class A1 {
fun foo(x: Int) {}
fun foo(x: String) {}
}
class A2 {
fun Int.foo() {}
fun String.foo() {}
}
class A3 {
fun foo(x: Int) {}
fun Int.foo() {}
}
class A4 {
fun foo(x: Int) {}
val foo = 1
}
class A5 {
<!JS_NAME_CLASH!>fun foo()<!> {}
<!JS_NAME_CLASH!>val foo<!> = 1
}
class A6 {
fun Int.foo() {}
val foo = 1
}
class A7 {
fun Int.foo() {}
val Int.foo get() = 1
}
class A8 {
val foo = 1
val Int.foo get() = 1
}
class A9 {
val String.foo get() = 1
val Int.foo get() = 1
}
class A10 {
fun foo(vararg x: Int) {}
fun foo() {}
}
class A14 {
fun foo(vararg x: Int) {}
fun foo(x: Int) {}
}
class A15 {
fun foo(vararg x: Int) {}
fun foo(vararg x: String) {}
}
class A16 {
fun foo(vararg x: Int) {}
val foo = 1
}
class A17 {
fun foo(vararg x: Int) {}
val Int.foo get() = 1
}
class A18 {
fun foo(vararg x: Int) {}
fun Int.foo() = 1
}
class A19 {
<!JS_NAME_CLASH!>fun setFoo()<!> {}
var foo: Int
@JsName("getFoo") get() = 1
<!JS_NAME_CLASH!>@JsName("setFoo") set(value: Int)<!> {}
}
class A20 {
fun setFoo(x: Int) {}
var foo: Int
@JsName("getFoo") get() = 1
@JsName("setFoo") set(value: Int) {}
}
class A21 {
<!JS_NAME_CLASH!>fun foo()<!> {}
<!JS_NAME_CLASH!>@JsName("foo") fun bar()<!> {}
}
class A22 {
fun foo(x: Int) {}
@JsName("foo") fun bar() {}
}
class A23 {
<!JS_NAME_CLASH!>val foo<!> = 1
<!JS_NAME_CLASH!>@JsName("foo") fun bar()<!> {}
}
class A24 {
<!JS_NAME_CLASH!>@JsName("foo") val bar<!> = 1
<!JS_NAME_CLASH!>fun foo()<!> {}
}
class A25 {
@JsName("foo") val bar = 1
fun foo(x: Int) {}
}
class A26 {
<!JS_NAME_CLASH!>fun foo()<!> {}
<!JS_NAME_CLASH!>var foo: Int<!>
get() = 1
set(value: Int) {}
}
class A27 {
<!JS_NAME_CLASH!>@JsName("foo") fun bar()<!> {}
<!JS_NAME_CLASH!>var foo: Int<!>
get() = 1
set(value: Int) {}
}
class A28 {
fun foo(x: Int) {}
var foo: Int
get() = 1
set(value: Int) {}
}
class A29 {
<!JS_NAME_CLASH!>val foo<!> get() = 1
<!JS_NAME_CLASH!>@JsName("foo") fun bar()<!> {}
}
class A30 {
val Int.foo get() = 1
@JsName("foo") fun bar() {}
}
class A31 {
<!JS_NAME_CLASH!>object foo<!>
<!JS_NAME_CLASH!>fun foo()<!> {}
}
class A32 {
object foo
fun foo(x: Int) {}
}
class A33 {
<!JS_NAME_CLASH!>object foo<!>
<!JS_NAME_CLASH!>val foo<!> = 1
}
class A34 {
object foo
val String.foo get() = 1
}
class A35 {
companion <!JS_NAME_CLASH!>object foo<!>
<!JS_NAME_CLASH!>fun foo()<!> {}
}
class A36 {
companion object foo
fun foo(x: Int) {}
}
class A37 {
companion <!JS_NAME_CLASH!>object foo<!>
<!JS_NAME_CLASH!>val foo<!> = 1
}
class A38 {
companion object foo
val String.foo get() = 1
}
class A39 {
class <!JS_NAME_CLASH!>foo<!>
<!JS_NAME_CLASH!>fun foo()<!> {}
}
class A40 {
class foo
fun foo(x: Int) {}
}
class A41 {
class <!JS_NAME_CLASH!>foo<!>
<!JS_NAME_CLASH!>val foo<!> = 1
}
class A42 {
class foo
val String.foo get() = 1
}
@@ -0,0 +1,425 @@
package
public final class A1 {
public constructor A1()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public final fun foo(/*0*/ x: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A10 {
public constructor A10()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public final fun foo(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A14 {
public constructor A14()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public final fun foo(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A15 {
public constructor A15()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ vararg x: kotlin.String /*kotlin.Array<out kotlin.String>*/): kotlin.Unit
public final fun foo(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A16 {
public constructor A16()
public final val foo: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A17 {
public constructor A17()
public final val kotlin.Int.foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A18 {
public constructor A18()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.foo(): kotlin.Int
}
public final class A19 {
public constructor A19()
@get:kotlin.js.JsName(name = "getFoo") @set:kotlin.js.JsName(name = "setFoo") public final var foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun setFoo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A2 {
public constructor A2()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.foo(): kotlin.Unit
public final fun kotlin.String.foo(): kotlin.Unit
}
public final class A20 {
public constructor A20()
@get:kotlin.js.JsName(name = "getFoo") @set:kotlin.js.JsName(name = "setFoo") public final var foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun setFoo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A21 {
public constructor A21()
@kotlin.js.JsName(name = "foo") public final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A22 {
public constructor A22()
@kotlin.js.JsName(name = "foo") public final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A23 {
public constructor A23()
public final val foo: kotlin.Int = 1
@kotlin.js.JsName(name = "foo") public final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A24 {
public constructor A24()
@kotlin.js.JsName(name = "foo") public final val bar: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A25 {
public constructor A25()
@kotlin.js.JsName(name = "foo") public final val bar: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A26 {
public constructor A26()
public final var foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A27 {
public constructor A27()
public final var foo: kotlin.Int
@kotlin.js.JsName(name = "foo") public final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A28 {
public constructor A28()
public final var foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A29 {
public constructor A29()
public final val foo: kotlin.Int
@kotlin.js.JsName(name = "foo") public final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A3 {
public constructor A3()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.foo(): kotlin.Unit
}
public final class A30 {
public constructor A30()
public final val kotlin.Int.foo: kotlin.Int
@kotlin.js.JsName(name = "foo") public final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A31 {
public constructor A31()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public object foo {
private constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A32 {
public constructor A32()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public object foo {
private constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A33 {
public constructor A33()
public final val foo: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public object foo {
private constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A34 {
public constructor A34()
public final val kotlin.String.foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public object foo {
private constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A35 {
public constructor A35()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object foo {
private constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A36 {
public constructor A36()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object foo {
private constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A37 {
public constructor A37()
public final val foo: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object foo {
private constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A38 {
public constructor A38()
public final val kotlin.String.foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object foo {
private constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A39 {
public constructor A39()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class foo {
public constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A4 {
public constructor A4()
public final val foo: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A40 {
public constructor A40()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class foo {
public constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A41 {
public constructor A41()
public final val foo: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class foo {
public constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A42 {
public constructor A42()
public final val kotlin.String.foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class foo {
public constructor foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public final class A5 {
public constructor A5()
public final val foo: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A6 {
public constructor A6()
public final val foo: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.foo(): kotlin.Unit
}
public final class A7 {
public constructor A7()
public final val kotlin.Int.foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.foo(): kotlin.Unit
}
public final class A8 {
public constructor A8()
public final val foo: kotlin.Int = 1
public final val kotlin.Int.foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A9 {
public constructor A9()
public final val kotlin.Int.foo: kotlin.Int
public final val kotlin.String.foo: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,9 @@
// FIR_IDENTICAL
package foo
class A
<!JS_NAME_CLASH!>@JsName("get_bar") fun A.get_bar()<!> = 23
val A.bar: Int
<!JS_NAME_CLASH!>@JsName("get_bar") get()<!> = 42
@@ -0,0 +1,14 @@
package
package foo {
@get:kotlin.js.JsName(name = "get_bar") public val foo.A.bar: kotlin.Int
@kotlin.js.JsName(name = "get_bar") public fun foo.A.get_bar(): kotlin.Int
public final class A {
public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -0,0 +1,223 @@
// 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
@@ -0,0 +1,396 @@
package
package FinalExternalClass {
public final external class ExternalClass {
public constructor ExternalClass()
@kotlin.js.JsName(name = "test") public final val notTest: kotlin.String
public final val test: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public final fun notTest(): kotlin.String
public final fun test(): kotlin.String
public final fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.String
public final fun test(/*0*/ x: kotlin.Int): kotlin.String
public final fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenExternalClassWithFinalMethods {
public open external class ExternalClass {
public constructor ExternalClass()
@kotlin.js.JsName(name = "test") public final val notTest: kotlin.String
public final val test: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public final fun notTest(): kotlin.String
public final fun test(): kotlin.String
public final fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.String
public final fun test(/*0*/ x: kotlin.Int): kotlin.String
public final fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass1 : OpenExternalClassWithFinalMethods.ExternalClass {
public constructor MyClass1()
@kotlin.js.JsName(name = "test") public final override /*1*/ /*fake_override*/ val notTest: kotlin.String
public final override /*1*/ /*fake_override*/ val test: kotlin.String
public final val kotlin.Int.test: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public final override /*1*/ /*fake_override*/ fun notTest(): kotlin.String
@kotlin.js.JsName(name = "test") public final fun notTest2(): kotlin.Unit
public final override /*1*/ /*fake_override*/ fun test(): kotlin.String
public final override /*1*/ /*fake_override*/ fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.String
public final override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.String
public final fun test(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.IntArray
public final override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public final fun test(/*0*/ x: kotlin.collections.List<kotlin.Int>): kotlin.collections.List<kotlin.Int>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.test(): kotlin.Unit
}
public final class MyClass2 : OpenExternalClassWithFinalMethods.ExternalClass {
public constructor MyClass2()
@kotlin.js.JsName(name = "test") public final override /*1*/ /*fake_override*/ val notTest: kotlin.String
@kotlin.js.JsName(name = "test") public final val notTest2: kotlin.Int = 1
public final override /*1*/ /*fake_override*/ val test: kotlin.String
public final val kotlin.Int.test: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public final override /*1*/ /*fake_override*/ fun notTest(): kotlin.String
public final override /*1*/ /*fake_override*/ fun test(): kotlin.String
public final override /*1*/ /*fake_override*/ fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.String
public final override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.String
public final fun test(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.IntArray
public final override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public final fun test(/*0*/ x: kotlin.collections.List<kotlin.Int>): kotlin.collections.List<kotlin.Int>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.test(): kotlin.Unit
}
}
package OpenExternalClassWithOpenMethods {
public open external class ExternalClass {
public constructor ExternalClass()
@kotlin.js.JsName(name = "test") public open val notTest: kotlin.String
public open val test: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open fun notTest(): kotlin.String
public open fun test(): kotlin.String
public open fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.String
public open fun test(/*0*/ x: kotlin.Int): kotlin.String
public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenExternalClassWithOpenMethods.ExternalClass {
public constructor MyClass()
@kotlin.js.JsName(name = "test") public open override /*1*/ /*fake_override*/ val notTest: kotlin.String
public open override /*1*/ /*fake_override*/ val test: kotlin.String
public final val kotlin.Int.test: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open override /*1*/ /*fake_override*/ fun notTest(): kotlin.String
public open override /*1*/ /*fake_override*/ fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.String
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.String
public final fun test(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray*/): kotlin.IntArray
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public final fun test(/*0*/ x: kotlin.collections.List<kotlin.Int>): kotlin.collections.List<kotlin.Int>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun kotlin.Int.test(): kotlin.Unit
}
}
package OpenInheritedMethodClashedWithChildMethodJsName {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildMethodJsName.ExternalClass {
public constructor MyClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public final fun notTest(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildOverload {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.Int): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildOverload.ExternalClass {
public constructor MyClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildOverridde {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.Int): kotlin.Int
public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildOverridde.ExternalClass {
public constructor MyClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ fun test(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildProperty {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.Int): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildProperty.ExternalClass {
public constructor MyClass()
public final val test: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildPropertyGetterJsName {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildPropertyGetterJsName.ExternalClass {
public constructor MyClass()
@get:kotlin.js.JsName(name = "test") public final val notTest: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildPropertyJsName {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildPropertyJsName.ExternalClass {
public constructor MyClass()
@kotlin.js.JsName(name = "test") public final val notTest: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildPropertyOverridde {
public open external class ExternalClass {
public constructor ExternalClass()
public open val test: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildPropertyOverridde.ExternalClass {
public constructor MyClass()
public open override /*1*/ val test: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithChildPropertySetterJsName {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithChildPropertySetterJsName.ExternalClass {
public constructor MyClass()
@get:kotlin.js.JsName(name = "getterTest") @set:kotlin.js.JsName(name = "test") public final var notTest: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodClashedWithOtherInheritedMethod {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodClashedWithOtherInheritedMethod.ExternalClass, OpenInheritedMethodClashedWithOtherInheritedMethod.MyInterface {
public constructor MyClass()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open override /*1*/ /*fake_override*/ fun noTest(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.String): kotlin.String
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public open fun noTest(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodNotClashedWithAbstractMethod {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodNotClashedWithAbstractMethod.ExternalClass, OpenInheritedMethodNotClashedWithAbstractMethod.MyInterface {
public constructor MyClass()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun test(): kotlin.String
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodNotClashedWithAbstractMethodWithSameName {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodNotClashedWithAbstractMethodWithSameName.ExternalClass, OpenInheritedMethodNotClashedWithAbstractMethodWithSameName.MyInterface {
public constructor MyClass()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface MyInterface {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@kotlin.js.JsName(name = "test") public abstract fun test(/*0*/ x: kotlin.Int): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedMethodNotClashedWithExternalAbstractMethod {
public open external class ExternalClass {
public constructor ExternalClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedMethodNotClashedWithExternalAbstractMethod.ExternalClass, OpenInheritedMethodNotClashedWithExternalAbstractMethod.MyInterface {
public constructor MyClass()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun test(): kotlin.String
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public external interface MyInterface {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenInheritedPropertyClashedWithChildMethod {
public open external class ExternalClass {
public constructor ExternalClass()
public open val test: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : OpenInheritedPropertyClashedWithChildMethod.ExternalClass {
public constructor MyClass()
public open override /*1*/ /*fake_override*/ val test: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -0,0 +1,171 @@
// FIR_IDENTICAL
// FILE: DeclarationOverloads.kt
package DeclarationOverloads
<!JS_NAME_CLASH!>fun test()<!> {}
fun test(x: Int) = x
fun test(x: String) = x
fun test(x: String?) = x
fun test(vararg x: Any) = x
@Suppress("NOTHING_TO_INLINE")
inline fun <reified T> test() {}
<!JS_NAME_CLASH!>val test<!> = 0
fun Int.test() {}
fun Int.test(x: Int) = x
fun String.test() {}
fun String.test(x: String) = x
val Int.test
get() = 0
var String.test
get() = ""
set(value) { test(value) }
// FILE: ClashJsNamedFunctionWithOtherFunction.kt
package ClashJsNamedFunctionWithOtherFunction
<!JS_NAME_CLASH!>@JsName("test") fun noTest(x: String): String<!> = x
<!JS_NAME_CLASH!>fun test()<!> {}
// FILE: ClashJsNamedFunctionWithOtherProperty.kt
package ClashJsNamedFunctionWithOtherProperty
<!JS_NAME_CLASH!>@JsName("test") fun noTest(x: String): String<!> = x
<!JS_NAME_CLASH!>val test<!> = 1
// FILE: ClashJsNamedPropertyWithOtherFunction.kt
package ClashJsNamedPropertyWithOtherFunction
<!JS_NAME_CLASH!>fun test()<!> {}
<!JS_NAME_CLASH!>@JsName("test") val notTest<!> = 1
// FILE: ClashJsNamedPropertyGetterWithOtherFunction.kt
package ClashJsNamedPropertyGetterWithOtherFunction
<!JS_NAME_CLASH!>fun test()<!> {}
val notTest: Int
<!JS_NAME_CLASH!>@JsName("test") get()<!> = 1
// FILE: ClashJsNamedPropertySetterWithOtherFunction.kt
package ClashJsNamedPropertySetterWithOtherFunction
<!JS_NAME_CLASH!>fun test()<!> {}
fun <T> ignore(x: T) = x
var notTest: Int
@JsName("getterTest") get() = 1
<!JS_NAME_CLASH!>@JsName("test") set(value)<!> { ignore(value) }
// FILE: FunctionAndInterfaceClash.kt
package FunctionAndInterfaceClash
<!JS_NAME_CLASH!>fun test()<!> {}
interface <!JS_NAME_CLASH!>test<!>
// FILE: FunctionWithParamsAndInterfaceNoClash.kt
package FunctionWithParamsAndInterfaceNoClash
fun test(x: Int) = x
@Suppress("NOTHING_TO_INLINE")
inline fun <reified T> test() {}
interface test
// FILE: FunctionWithJsNameAndInterfaceClash.kt
package FunctionWithJsNameAndInterfaceClash
<!JS_NAME_CLASH!>@JsName("test") fun notTest(x: Int)<!> = x
interface <!JS_NAME_CLASH!>test<!>
// FILE: FunctionWithJsNameAndObjectClash.kt
package FunctionWithJsNameAndObjectClash
<!JS_NAME_CLASH!>@JsName("test") fun notTest(x: Int)<!> = x
<!JS_NAME_CLASH!>object test<!>
// FILE: FunctionWithJsNameAndClassClash.kt
package FunctionWithJsNameAndClassClash
<!JS_NAME_CLASH!>@JsName("test") fun notTest(x: Int)<!> = x
class <!JS_NAME_CLASH!>test<!>
// FILE: FunctionAndInterfaceWithJsNameClash.kt
package FunctionAndInterfaceWithJsNameClash
<!JS_NAME_CLASH!>fun test()<!> {}
@JsName("test") interface <!JS_NAME_CLASH!>NotTest<!>
// FILE: FunctionAndClassWithJsNameClash.kt
package FunctionAndClassWithJsNameClash
<!JS_NAME_CLASH!>fun test()<!> {}
@JsName("test") class <!JS_NAME_CLASH!>NotTest<!>
// FILE: FunctionAndObjectWithJsNameClash.kt
package FunctionAndObjectWithJsNameClash
<!JS_NAME_CLASH!>fun test()<!> {}
@JsName("test") <!JS_NAME_CLASH!>object NotTest<!>
// FILE: PropertyWithJsNameAndInterfaceClash.kt
package PropertyWithJsNameAndInterfaceClash
<!JS_NAME_CLASH!>@JsName("test") val notTest<!> = 1
interface <!JS_NAME_CLASH!>test<!>
// FILE: FunctionWithJsNameAndExternalDeclarationsNoClash.kt
package FunctionWithJsNameAndExternalDeclarationsNoClash
@JsName("test")
fun notTest1(x: Int) = x
external fun test(): Int
external fun test(x: String): Int
external val test: Int
@JsName("test")
external fun NotTest2(x: Int): Int
@JsName("test")
external val NotTest3: Int
@JsName("test")
external interface NotTest4
@JsName("test")
external class NotTest5
@JsName("test")
external abstract class NotTest6
@JsName("test")
external open class NotTest7
@JsName("test")
external private class NotTest8
@JsName("test")
external internal class NotTest9
@JsName("test")
external object NotTest10
@@ -0,0 +1,196 @@
package
package ClashJsNamedFunctionWithOtherFunction {
@kotlin.js.JsName(name = "test") public fun noTest(/*0*/ x: kotlin.String): kotlin.String
public fun test(): kotlin.Unit
}
package ClashJsNamedFunctionWithOtherProperty {
public val test: kotlin.Int = 1
@kotlin.js.JsName(name = "test") public fun noTest(/*0*/ x: kotlin.String): kotlin.String
}
package ClashJsNamedPropertyGetterWithOtherFunction {
@get:kotlin.js.JsName(name = "test") public val notTest: kotlin.Int
public fun test(): kotlin.Unit
}
package ClashJsNamedPropertySetterWithOtherFunction {
@get:kotlin.js.JsName(name = "getterTest") @set:kotlin.js.JsName(name = "test") public var notTest: kotlin.Int
public fun </*0*/ T> ignore(/*0*/ x: T): T
public fun test(): kotlin.Unit
}
package ClashJsNamedPropertyWithOtherFunction {
@kotlin.js.JsName(name = "test") public val notTest: kotlin.Int = 1
public fun test(): kotlin.Unit
}
package DeclarationOverloads {
public val test: kotlin.Int = 0
public val kotlin.Int.test: kotlin.Int
public var kotlin.String.test: kotlin.String
public fun test(): kotlin.Unit
@kotlin.Suppress(names = {"NOTHING_TO_INLINE"}) public inline fun </*0*/ reified T> test(): kotlin.Unit
public fun test(/*0*/ vararg x: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.Array<out kotlin.Any>
public fun test(/*0*/ x: kotlin.Int): kotlin.Int
public fun test(/*0*/ x: kotlin.String): kotlin.String
public fun test(/*0*/ x: kotlin.String?): kotlin.String?
public fun kotlin.Int.test(): kotlin.Unit
public fun kotlin.Int.test(/*0*/ x: kotlin.Int): kotlin.Int
public fun kotlin.String.test(): kotlin.Unit
public fun kotlin.String.test(/*0*/ x: kotlin.String): kotlin.String
}
package FunctionAndClassWithJsNameClash {
public fun test(): kotlin.Unit
@kotlin.js.JsName(name = "test") public final class NotTest {
public constructor NotTest()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package FunctionAndInterfaceClash {
public fun test(): kotlin.Unit
public interface test {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package FunctionAndInterfaceWithJsNameClash {
public fun test(): kotlin.Unit
@kotlin.js.JsName(name = "test") public interface NotTest {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package FunctionAndObjectWithJsNameClash {
public fun test(): kotlin.Unit
@kotlin.js.JsName(name = "test") public object NotTest {
private constructor NotTest()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package FunctionWithJsNameAndClassClash {
@kotlin.js.JsName(name = "test") public fun notTest(/*0*/ x: kotlin.Int): kotlin.Int
public final class test {
public constructor test()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package FunctionWithJsNameAndExternalDeclarationsNoClash {
@kotlin.js.JsName(name = "test") public external val NotTest3: kotlin.Int
public external val test: kotlin.Int
@kotlin.js.JsName(name = "test") public external fun NotTest2(/*0*/ x: kotlin.Int): kotlin.Int
@kotlin.js.JsName(name = "test") public fun notTest1(/*0*/ x: kotlin.Int): kotlin.Int
public external fun test(): kotlin.Int
public external fun test(/*0*/ x: kotlin.String): kotlin.Int
@kotlin.js.JsName(name = "test") public external object NotTest10 {
private constructor NotTest10()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.js.JsName(name = "test") public external interface NotTest4 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.js.JsName(name = "test") public final external class NotTest5 {
public constructor NotTest5()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.js.JsName(name = "test") public abstract external class NotTest6 {
public constructor NotTest6()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.js.JsName(name = "test") public open external class NotTest7 {
public constructor NotTest7()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.js.JsName(name = "test") private final external class NotTest8 {
public constructor NotTest8()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@kotlin.js.JsName(name = "test") internal final external class NotTest9 {
public constructor NotTest9()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package FunctionWithJsNameAndInterfaceClash {
@kotlin.js.JsName(name = "test") public fun notTest(/*0*/ x: kotlin.Int): kotlin.Int
public interface test {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package FunctionWithJsNameAndObjectClash {
@kotlin.js.JsName(name = "test") public fun notTest(/*0*/ x: kotlin.Int): kotlin.Int
public object test {
private constructor test()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package FunctionWithParamsAndInterfaceNoClash {
@kotlin.Suppress(names = {"NOTHING_TO_INLINE"}) public inline fun </*0*/ reified T> test(): kotlin.Unit
public fun test(/*0*/ x: kotlin.Int): kotlin.Int
public interface test {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package PropertyWithJsNameAndInterfaceClash {
@kotlin.js.JsName(name = "test") public val notTest: kotlin.Int = 1
public interface test {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}