6e8283a6fe
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
94 lines
2.8 KiB
Kotlin
Vendored
94 lines
2.8 KiB
Kotlin
Vendored
// CHECK:
|
|
// Mangled name: C
|
|
// Public signature: /C|null[0]
|
|
class C<T : Any?> {
|
|
// CHECK:
|
|
// Mangled name: C{}t
|
|
// Public signature: /C.t|-8767999791664836944[0]
|
|
val t: T
|
|
// CHECK JVM_IR:
|
|
// Mangled name: C#<get-t>(){}1:0
|
|
// Public signature: /C.t.<get-t>|5296523675281381766[0]
|
|
// CHECK JS_IR NATIVE:
|
|
// Mangled name: C#<get-t>(){}
|
|
// Public signature: /C.t.<get-t>|7061140872129253552[0]
|
|
get
|
|
|
|
// CHECK:
|
|
// Mangled name: C#<init>(1:0){}
|
|
// Public signature: /C.<init>|-8731461708390519279[0]
|
|
constructor(t: T) /* primary */
|
|
|
|
// CHECK JVM_IR:
|
|
// Mangled name: C#hashCode(){}kotlin.Int
|
|
// Public signature: /C.hashCode|-8048879360829830756[0]
|
|
// CHECK JS_IR NATIVE:
|
|
// Mangled name: C#hashCode(){}
|
|
// Public signature: /C.hashCode|3409210261493131192[0]
|
|
override fun hashCode(): Int
|
|
|
|
}
|
|
|
|
// CHECK:
|
|
// Mangled name: IC
|
|
// Public signature: /IC|null[0]
|
|
value class IC<TT : Any?> {
|
|
// CHECK:
|
|
// Mangled name: IC{}c
|
|
// Public signature: /IC.c|-4416962153448040627[0]
|
|
val c: C<TT>
|
|
// CHECK JVM_IR:
|
|
// Mangled name: IC#<get-c>(){}C<1:0>
|
|
// Public signature: /IC.c.<get-c>|-6707667902688835915[0]
|
|
// CHECK JS_IR NATIVE:
|
|
// Mangled name: IC#<get-c>(){}
|
|
// Public signature: /IC.c.<get-c>|2368736057102379596[0]
|
|
get
|
|
|
|
// CHECK:
|
|
// Mangled name: IC#<init>(C<1:0>){}
|
|
// Public signature: /IC.<init>|-2549303465575104617[0]
|
|
constructor(c: C<TT>) /* primary */
|
|
// CHECK JVM_IR:
|
|
// Mangled name: IC#equals(kotlin.Any?){}kotlin.Boolean
|
|
// Public signature: /IC.equals|722809408929142791[0]
|
|
// CHECK JS_IR NATIVE:
|
|
// Mangled name: IC#equals(kotlin.Any?){}
|
|
// Public signature: /IC.equals|4638265728071529943[0]
|
|
override operator fun equals(other: Any?): Boolean
|
|
|
|
// CHECK JVM_IR:
|
|
// Mangled name: IC#hashCode(){}kotlin.Int
|
|
// Public signature: /IC.hashCode|-8048879360829830756[0]
|
|
// CHECK JS_IR NATIVE:
|
|
// Mangled name: IC#hashCode(){}
|
|
// Public signature: /IC.hashCode|3409210261493131192[0]
|
|
override fun hashCode(): Int
|
|
|
|
// CHECK JVM_IR:
|
|
// Mangled name: IC#toString(){}kotlin.String
|
|
// Public signature: /IC.toString|6958853723545266802[0]
|
|
// CHECK JS_IR NATIVE:
|
|
// Mangled name: IC#toString(){}
|
|
// Public signature: /IC.toString|-1522858123163872138[0]
|
|
override fun toString(): String
|
|
|
|
// CHECK JVM_IR:
|
|
// Mangled name: IC#foo(){}kotlin.Int
|
|
// Public signature: /IC.foo|-1256155405684507276[0]
|
|
// CHECK JS_IR NATIVE:
|
|
// Mangled name: IC#foo(){}
|
|
// Public signature: /IC.foo|-1041209573719867811[0]
|
|
fun foo(): Int
|
|
|
|
}
|
|
|
|
// CHECK JVM_IR:
|
|
// Mangled name: #box(){}kotlin.String
|
|
// Public signature: /box|-9347091776561469[0]
|
|
// CHECK JS_IR NATIVE:
|
|
// Mangled name: #box(){}
|
|
// Public signature: /box|2173511048851971368[0]
|
|
fun box(): String
|
|
|