[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:
committed by
Space Team
parent
bccf69910d
commit
6e8283a6fe
@@ -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
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user