[IR] Dump IdSignatures and mangled names in irText tests

The reason #1 for this feature is that we want to test IdSignatures
generated for declarations. Currently, there is no (easy) way to ensure
that a change in the signature building logic doesn't cause any breaking
changes wrt klibs.

Now, most IdSignatures include hashed mangled names in them, so even if
we catch a regression where the included hash changes, there would be no
way of knowing immediately what caused it, unless we'd also have mangled
names in the expectations.

The reason #2 is to test the manglers themselves. Currently, there are
no tests for them. They heavily duplicate each other, this is already
causing issues (see KT-57427) that would be very hard to catch without
these tests.

^KT-58238 Fixed
This commit is contained in:
Sergej Jaskiewicz
2023-04-06 15:07:36 +02:00
committed by Space Team
parent bccf69910d
commit 6e8283a6fe
791 changed files with 36162 additions and 357 deletions
@@ -0,0 +1,120 @@
// MODULE: m1
// FILE: genericClassInDifferentModule_m1.kt
// CHECK:
// Mangled name: Base
// Public signature: /Base|null[0]
abstract class Base<T : Any?> {
// CHECK:
// Mangled name: Base{}x
// Public signature: /Base.x|-8060530855978347579[0]
val x: T
// CHECK JVM_IR:
// Mangled name: Base#<get-x>(){}1:0
// Public signature: /Base.x.<get-x>|-8893883356128097563[0]
// CHECK JS_IR NATIVE:
// Mangled name: Base#<get-x>(){}
// Public signature: /Base.x.<get-x>|1482705010654679335[0]
get
// CHECK:
// Mangled name: Base#<init>(1:0){}
// Public signature: /Base.<init>|-8731461708390519279[0]
constructor(x: T) /* primary */
// CHECK JVM_IR:
// Mangled name: Base#foo(0:0){0§<kotlin.Any?>}1:0
// Public signature: /Base.foo|8673945311830780726[0]
// CHECK JS_IR NATIVE:
// Mangled name: Base#foo(0:0){0§<kotlin.Any?>}
// Public signature: /Base.foo|-6838606926256314363[0]
abstract fun <Y : Any?> foo(y: Y): T
// CHECK:
// Mangled name: Base{}bar
// Public signature: /Base.bar|-7864284097863469857[0]
abstract var bar: T
// CHECK JVM_IR:
// Mangled name: Base#<get-bar>(){}1:0
// Public signature: /Base.bar.<get-bar>|7899956589744407340[0]
// CHECK JS_IR NATIVE:
// Mangled name: Base#<get-bar>(){}
// Public signature: /Base.bar.<get-bar>|6880642144337645699[0]
abstract get
// CHECK:
// Mangled name: Base#<set-bar>(1:0){}
// Public signature: /Base.bar.<set-bar>|3083825024913650500[0]
abstract set
// CHECK:
// Mangled name: Base@0:0{0§<kotlin.Any?>}exn
// Public signature: /Base.exn|2371047114698435273[0]
abstract var <Z : Any?> Z.exn: T
// CHECK JVM_IR:
// Mangled name: Base#<get-exn>@0:0(){0§<kotlin.Any?>}1:0
// Public signature: /Base.exn.<get-exn>|6217753676739394662[0]
// CHECK JS_IR NATIVE:
// Mangled name: Base#<get-exn>@0:0(){0§<kotlin.Any?>}
// Public signature: /Base.exn.<get-exn>|-202876889853335253[0]
abstract get
// CHECK:
// Mangled name: Base#<set-exn>@0:0(1:0){0§<kotlin.Any?>}
// Public signature: /Base.exn.<set-exn>|5747714515092438414[0]
abstract set
}
// MODULE: m2
// FILE: genericClassInDifferentModule_m2.kt
// CHECK:
// Mangled name: Derived1
// Public signature: /Derived1|null[0]
class Derived1<T : Any?> : Base<T> {
// CHECK:
// Mangled name: Derived1{}bar
// Public signature: /Derived1.bar|-7864284097863469857[0]
override var bar: T
// CHECK JVM_IR:
// Mangled name: Derived1#<get-bar>(){}1:0
// Public signature: /Derived1.bar.<get-bar>|7899956589744407340[0]
override get
// CHECK:
// Mangled name: Derived1#<set-bar>(1:0){}
// Public signature: /Derived1.bar.<set-bar>|3083825024913650500[0]
override set
// CHECK:
// Mangled name: Derived1#<init>(1:0){}
// Public signature: /Derived1.<init>|-8731461708390519279[0]
constructor(x: T) /* primary */
// CHECK JVM_IR:
// Mangled name: Derived1#foo(0:0){0§<kotlin.Any?>}1:0
// Public signature: /Derived1.foo|8673945311830780726[0]
override fun <Y : Any?> foo(y: Y): T
// CHECK:
// Mangled name: Derived1{}x
// Public signature: /Derived1.x|-8060530855978347579[0]
/* fake */ override val x: T
// CHECK JVM_IR:
// Mangled name: Derived1#<get-x>(){}1:0
// Public signature: /Derived1.x.<get-x>|-8893883356128097563[0]
/* fake */ override get(): T
// CHECK:
// Mangled name: Derived1@0:0{0§<kotlin.Any?>}exn
// Public signature: /Derived1.exn|2371047114698435273[0]
override var <Z : Any?> Z.exn: T
// CHECK JVM_IR:
// Mangled name: Derived1#<get-exn>@0:0(){0§<kotlin.Any?>}1:0
// Public signature: /Derived1.exn.<get-exn>|6217753676739394662[0]
override get(): T
// CHECK:
// Mangled name: Derived1#<set-exn>@0:0(1:0){0§<kotlin.Any?>}
// Public signature: /Derived1.exn.<set-exn>|5747714515092438414[0]
override set(value: T): Unit
}