Factor out duplicated mangling logic for functions into the base class

^KT-57777 Fixed
^KT-57818 Fixed
This commit is contained in:
Sergej Jaskiewicz
2023-04-13 11:35:30 +02:00
committed by Space Team
parent 8ae196d4fc
commit 02180e8685
77 changed files with 366 additions and 424 deletions
-3
View File
@@ -1,9 +1,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
class TestClass
interface TestInterface
+1 -1
View File
@@ -3,7 +3,7 @@
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775, KT-57777
// ^ KT-57775
enum class TestEnum1 {
TEST1, TEST2
+1 -1
View File
@@ -2,7 +2,7 @@
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775, KT-57777
// ^ KT-57775
enum class TestFinalEnum1 {
X1
-3
View File
@@ -3,9 +3,6 @@
// FULL_JDK
// WITH_STDLIB
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775, KT-57430, KT-57777
enum class MyEnum {
Ok, Nope
}
@@ -2,7 +2,7 @@
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775, KT-57777
// ^ KT-57775
enum class A {
X("asd"),
@@ -3,7 +3,7 @@
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775, KT-57777
// ^ KT-57775
enum class Test0(val x: Int) {
ZERO;
@@ -1,9 +1,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
annotation class TestAnn(val x: String)
@TestAnn("class")
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
const val ONE = 1
annotation class A(val x: Int)
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
annotation class A(val x: String)
class Cell(var value: Int) {
@@ -1,9 +1,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
enum class En { A, B, C, D }
annotation class TestAnn(val x: En)
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
annotation class TestAnn(val x: String)
@field:TestAnn("testVal.field")
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
annotation class TestAnn(val x: String)
@TestAnn("testVal.property")
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
annotation class TestAnn(val x: String)
val test1: String
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
annotation class AnnParam
@setparam:AnnParam
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
annotation class Ann
class A {
@@ -1,7 +1,3 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val test = try { } catch (e : Throwable) { }
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
const val I0 = 0
const val I1 = 1
const val I2 = I0 + I1 + I1
@@ -1,9 +1,6 @@
// FIR_IDENTICAL
// !LANGUAGE: +ContextReceivers
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
interface A {
fun a(): Int
}
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
@Deprecated("")
val testVal = 1
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val String.test1 get() = 42
var String.test2
@@ -1,6 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
class C<T>
object Delegate {
@@ -4,9 +4,6 @@
// IGNORE_BACKEND_K2: JS_IR
// IGNORE_BACKEND_K2: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
// MODULE: lib
// FILE: lib.kt
expect enum class MyEnum {
@@ -1,7 +1,93 @@
// FILE: main.kt
// MODULE: <lib>
// FILE: lib.kt
// CHECK:
// Mangled name: MyEnum
// Public signature: /MyEnum|null[1]
expect enum class MyEnum : Enum<MyEnum> {
// CHECK:
// Mangled name: MyEnum#<init>(){}
// Public signature: /MyEnum.<init>|-5645683436151566731[1]
private expect constructor() /* primary */
// CHECK:
// Mangled name: MyEnum.BAR
// Public signature: /MyEnum.BAR|null[1]
BAR
// CHECK:
// Mangled name: MyEnum.FOO
// Public signature: /MyEnum.FOO|null[1]
FOO
// CHECK:
// Mangled name: MyEnum#valueOf#static(kotlin.String){}MyEnum
// Public signature: /MyEnum.valueOf|4316550590519800984[1]
expect fun valueOf(value: String): MyEnum
// CHECK JVM_IR:
// Mangled name: MyEnum#values#static(){}kotlin.Array<MyEnum>
// Public signature: /MyEnum.values|3097625172661156808[1]
expect fun values(): Array<MyEnum>
// CHECK JVM_IR:
// Mangled name: MyEnum#clone(){}kotlin.Any
// Public signature: /MyEnum.clone|-6903128697527593263[1]
protected expect /* fake */ override fun clone(): Any
// CHECK JVM_IR:
// Mangled name: MyEnum#compareTo(MyEnum){}kotlin.Int
// Public signature: /MyEnum.compareTo|2015858924903177055[1]
expect /* fake */ override operator fun compareTo(other: MyEnum): Int
// CHECK JVM_IR:
// Mangled name: MyEnum#equals(kotlin.Any?){}kotlin.Boolean
// Public signature: /MyEnum.equals|722809408929142791[1]
expect /* fake */ override operator fun equals(other: Any?): Boolean
// CHECK JVM_IR:
// Mangled name: MyEnum#hashCode(){}kotlin.Int
// Public signature: /MyEnum.hashCode|-8048879360829830756[1]
expect /* fake */ override fun hashCode(): Int
// CHECK JVM_IR:
// Mangled name: MyEnum#toString(){}kotlin.String
// Public signature: /MyEnum.toString|6958853723545266802[1]
expect /* fake */ override fun toString(): String
// CHECK JVM_IR:
// Mangled name: MyEnum#static{}entries
// Public signature: /MyEnum.entries|-5134227801081826149[1]
expect val entries: EnumEntries<MyEnum>
// CHECK:
// Mangled name: MyEnum#<get-entries>#static(){}kotlin.enums.EnumEntries<MyEnum>
// Public signature: /MyEnum.entries.<get-entries>|-3922959509726908718[1]
get(): EnumEntries<MyEnum>
// CHECK JVM_IR:
// Mangled name: MyEnum{}name
// Public signature: /MyEnum.name|4231860309499509769[1]
expect /* fake */ override val name: String
// CHECK:
// Mangled name: MyEnum#<get-name>(){}kotlin.String
// Public signature: /MyEnum.name.<get-name>|-8006111524522882650[1]
/* fake */ override get(): String
// CHECK JVM_IR:
// Mangled name: MyEnum{}ordinal
// Public signature: /MyEnum.ordinal|1912745122988592376[1]
expect /* fake */ override val ordinal: Int
// CHECK:
// Mangled name: MyEnum#<get-ordinal>(){}kotlin.Int
// Public signature: /MyEnum.ordinal.<get-ordinal>|-6902664390061762634[1]
/* fake */ override get(): Int
}
// MODULE: main
// FILE: main.kt
// CHECK JVM_IR:
// Mangled name: MyEnum
// Public signature: /MyEnum|null[0]
enum class MyEnum : Enum<MyEnum> {
// CHECK:
@@ -46,7 +132,7 @@ enum class MyEnum : Enum<MyEnum> {
// CHECK JVM_IR:
// Mangled name: MyEnum#equals(kotlin.Any?){}kotlin.Boolean
// Public signature: /MyEnum.equals|722809408929142791[0]
/* fake */ override fun equals(other: Any?): Boolean
/* fake */ override operator fun equals(other: Any?): Boolean
// CHECK JVM_IR:
// Mangled name: MyEnum#hashCode(){}kotlin.Int
@@ -1,6 +1,6 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57429
val test1 = 42
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val test1 : (String) -> String = { it }
val test2 : Any.(Any) -> Any = { it.hashCode() }
val test3 = { i: Int, j: Int -> }
@@ -1,8 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
val test1 get() = 42
var test2 get() = 42; set(value) {}
@@ -1,8 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
class Test1<T : U, U>
fun <T : U, U> test2() {}
@@ -1,10 +1,6 @@
// FIR_IDENTICAL
// WITH_STDLIB
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
class MyClass(val value: String)
operator fun MyClass.provideDelegate(host: Any?, p: Any): String =
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
class Delegate(val value: String) {
operator fun getValue(thisRef: Any?, property: Any?) = value
}
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val p = 0
fun foo() = 1
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
var p = 0
fun testVariable() {
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
class A
operator fun A.plusAssign(s: String) {}
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
class A {
fun foo() {}
val bar = 0
@@ -1,4 +1,4 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57429
open class L<LL>(val ll: LL)
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
class A<T> {
fun foo() {}
val bar = 42
@@ -1,6 +1,6 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57433
package test
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
import Host.objectMember
object Host {
@@ -1,8 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
fun <T> castFun(x: Any) = x as T
fun <T> Any.castExtFun() = this as T
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
class A
val test = A()
-4
View File
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val p: Any? = null
fun foo(): Any? = null
@@ -2,7 +2,7 @@
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777, KT-57427, KT-57430
// ^ KT-57427, KT-57430
enum class X {
@@ -1,9 +1,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
enum class A { V1 }
fun testVariableAssignment_throws(a: A) {
@@ -1,8 +1,4 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val String.okext: String get() = "OK"
fun String.test5() = okext
-4
View File
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
var testSimple: Int = 0
set(value) {
field = value
@@ -1,9 +1,5 @@
// WITH_STDLIB
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
fun interface Fn<T, R> {
fun run(s: String, i: Int, t: T): R
}
@@ -1,8 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
val <T> T.id get() = this
val test = "abc".id
@@ -1,5 +1,5 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57436, KT-57429
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57429
class Value<T>(var value: T = null as T, var text: String? = null)
@@ -1,6 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
inline fun <reified T : Any> Any.test1(): T? =
if (this is T) this else null
-4
View File
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val test1 = "\uD83E\uDD17"
val test2 = "\uD83E\uDD17\uD83E\uDD17"
+1 -1
View File
@@ -1,4 +1,4 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57429
class A<T>(private val value: T) {
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
import A.foo
import A.bar
import A.fooExt
@@ -1,9 +1,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
object A
enum class En { X }
-4
View File
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val ok = "OK"
val ok2 = ok
val ok3: String get() = "OK"
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
class A {
fun foo() {}
}
@@ -1,4 +1,4 @@
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57433
package test
@@ -1,9 +1,6 @@
// WITH_STDLIB
// !LANGUAGE: +ImplicitSignedToUnsignedIntegerConversion
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
// FILE: signedToUnsignedConversions_annotation.kt
package kotlin.internal
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
fun foo(): String = ""
val x = 42
@@ -1,9 +1,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
val n: Any? = null
enum class En(val x: String?) {
@@ -1,7 +1,3 @@
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
import Host.Nested
class C(x: Int)
@@ -1,8 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
inline fun <reified T : Any> classRefFun() = T::class
inline fun <reified T : Any> Any.classRefExtFun() = T::class
@@ -1,9 +1,6 @@
// FIR_IDENTICAL
// WITH_STDLIB
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
val testSimpleUIntLiteral = 1u
val testSimpleUIntLiteralWithOverflow = 0xFFFF_FFFFu
-3
View File
@@ -1,9 +1,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
enum class Enum { A }
object A
val a = 0
-4
View File
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val test1 = arrayOf<String>()
val test2 = arrayOf("1", "2", "3")
val test3 = arrayOf("0", *test2, *test1, "4")
@@ -1,8 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// ^ KT-57818
val <T : CharSequence> T.gk: () -> T
get() = { -> this }
@@ -1,9 +1,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
enum class En { A, B, C }
fun test() {
@@ -2,9 +2,6 @@
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
enum class EE(val myName: String = this.toString().lowercase()) {
ENTRY;
}
-3
View File
@@ -1,8 +1,5 @@
// TARGET_BACKEND: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57777
package events
external open class internal {
-4
View File
@@ -1,9 +1,5 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val test1 = { 42 }
val test2 = { }
+1 -1
View File
@@ -2,7 +2,7 @@
// IGNORE_BACKEND: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57775, KT-57430, KT-57777
// ^ KT-57775, KT-57430
enum class Z {
ENTRY {
-4
View File
@@ -1,7 +1,3 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: NATIVE
// ^ KT-57818
val test = 2 + 2
@@ -1,6 +1,6 @@
// !LANGUAGE: -ForbidUsingExtensionPropertyTypeParameterInDelegate
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57429
import kotlin.reflect.KProperty1
@@ -1,6 +1,6 @@
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// ^ KT-57429, KT-57427
import kotlin.reflect.KMutableProperty