[FIR JS] Add more tests for JS_NAME_CLASH diagnostic

^KT-61862 Related
This commit is contained in:
Alexander Korepanov
2023-09-12 14:20:35 +02:00
committed by Space Team
parent 98fdaeb9a7
commit f07028959d
7 changed files with 125 additions and 0 deletions
@@ -221,3 +221,34 @@ interface MyInterface {
}
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
}
@@ -17,6 +17,70 @@ package FinalExternalClass {
}
}
package InheritGenericInExternalClass {
public open external class ExternalClass</*0*/ in T> {
public constructor ExternalClass</*0*/ in T>()
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: T?): kotlin.Int
public open fun test(/*0*/ x: T?, /*1*/ y: kotlin.String?): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : InheritGenericInExternalClass.ExternalClass<kotlin.Int> {
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*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int?): kotlin.Int
public final fun test(/*0*/ x: kotlin.Int?, /*1*/ y: kotlin.Int?): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int?, /*1*/ y: kotlin.String?): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package InheritGenericInExternalClassClash {
public open external class ExternalClass</*0*/ in T> {
public constructor ExternalClass</*0*/ in T>()
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: T?): kotlin.Int
public open fun test(/*0*/ x: T?, /*1*/ y: kotlin.String?): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : InheritGenericInExternalClassClash.ExternalClass<kotlin.Int> {
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.Int?, /*1*/ y: kotlin.String?): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package InheritGenericOutExternalClass {
public open external class ExternalClass</*0*/ out T> {
public constructor ExternalClass</*0*/ out T>()
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?): T
public open fun test(/*0*/ x: kotlin.Int?, /*1*/ y: kotlin.String?): T
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MyClass : InheritGenericOutExternalClass.ExternalClass<kotlin.Unit> {
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*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int?): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun test(/*0*/ x: kotlin.Int?, /*1*/ y: kotlin.String?): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package OpenExternalClassWithFinalMethods {
public open external class ExternalClass {