[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
@@ -1,8 +1,10 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// WITH_STDLIB
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun test1(d: dynamic) = d.toString()
fun test2(d: dynamic) = d.hashCode()
@@ -0,0 +1,15 @@
// CHECK JS_IR NATIVE:
// Mangled name: #test1(<dynamic>){}
// Public signature: /test1|4353482563436034667[0]
fun test1(d: dynamic): String
// CHECK JS_IR NATIVE:
// Mangled name: #test2(<dynamic>){}
// Public signature: /test2|-7945586224410659921[0]
fun test2(d: dynamic): Int
// CHECK JS_IR NATIVE:
// Mangled name: #test3(<dynamic>){}
// Public signature: /test3|8250122632028727853[0]
fun test3(d: dynamic): Boolean
@@ -1,5 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testArrayAccess1(d: dynamic) = d["KEY"]
fun testArrayAccess2(d: dynamic) = d()["KEY"]
@@ -0,0 +1,15 @@
// CHECK JS_IR NATIVE:
// Mangled name: #testArrayAccess1(<dynamic>){}
// Public signature: /testArrayAccess1|-7245796695879478116[0]
fun testArrayAccess1(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #testArrayAccess2(<dynamic>){}
// Public signature: /testArrayAccess2|-1661569284054013352[0]
fun testArrayAccess2(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #testArrayAccess3(<dynamic>){}
// Public signature: /testArrayAccess3|1401503501141065915[0]
fun testArrayAccess3(d: dynamic): dynamic
@@ -1,4 +1,8 @@
// TARGET_BACKEND: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testArrayAssignment(d: dynamic) {
d["KEY"] = 1
}
@@ -0,0 +1,10 @@
// CHECK:
// Mangled name: #testArrayAssignment(<dynamic>){}
// Public signature: /testArrayAssignment|-7643929268553758425[0]
fun testArrayAssignment(d: dynamic): Unit
// CHECK:
// Mangled name: #testArrayAssignmentFake(<dynamic>){}
// Public signature: /testArrayAssignmentFake|3175988190655386022[0]
fun testArrayAssignmentFake(d: dynamic): Unit
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testArrayAugmentedAssignment(d: dynamic) {
d["KEY"] += "+="
d["KEY"] -= "-="
@@ -0,0 +1,5 @@
// CHECK:
// Mangled name: #testArrayAugmentedAssignment(<dynamic>){}
// Public signature: /testArrayAugmentedAssignment|-3592844207838342981[0]
fun testArrayAugmentedAssignment(d: dynamic): Unit
@@ -0,0 +1,5 @@
// CHECK:
// Mangled name: #testArrayIncrementDecrement(<dynamic>){}
// Public signature: /testArrayIncrementDecrement|641183399401632019[0]
fun testArrayIncrementDecrement(d: dynamic): Unit
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testEqeq(d: dynamic) = d == 3
fun testExclEq(d: dynamic) = d != 3
fun testEqeqeq(d: dynamic) = d === 3
@@ -0,0 +1,20 @@
// CHECK JS_IR NATIVE:
// Mangled name: #testEqeq(<dynamic>){}
// Public signature: /testEqeq|-1993622698448833276[0]
fun testEqeq(d: dynamic): Boolean
// CHECK JS_IR NATIVE:
// Mangled name: #testEqeqeq(<dynamic>){}
// Public signature: /testEqeqeq|6434412038753944189[0]
fun testEqeqeq(d: dynamic): Boolean
// CHECK JS_IR NATIVE:
// Mangled name: #testExclEq(<dynamic>){}
// Public signature: /testExclEq|-2117076107258151936[0]
fun testExclEq(d: dynamic): Boolean
// CHECK JS_IR NATIVE:
// Mangled name: #testExclEqeq(<dynamic>){}
// Public signature: /testExclEqeq|5516019862167337768[0]
fun testExclEqeq(d: dynamic): Boolean
@@ -1,4 +1,8 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testAndAnd(d: dynamic) = d && d
fun testOrOr(d: dynamic) = d || d
@@ -0,0 +1,10 @@
// CHECK JS_IR NATIVE:
// Mangled name: #testAndAnd(<dynamic>){}
// Public signature: /testAndAnd|6769903474387958731[0]
fun testAndAnd(d: dynamic): Boolean
// CHECK JS_IR NATIVE:
// Mangled name: #testOrOr(<dynamic>){}
// Public signature: /testOrOr|-4888923550082993745[0]
fun testOrOr(d: dynamic): Boolean
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testBinaryPlus(d: dynamic) = d + 1
fun testBinaryMinus(d: dynamic) = d - 1
fun testMul(d: dynamic) = d * 2
@@ -0,0 +1,25 @@
// CHECK JS_IR NATIVE:
// Mangled name: #testBinaryMinus(<dynamic>){}
// Public signature: /testBinaryMinus|-6906044509434142120[0]
fun testBinaryMinus(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #testBinaryPlus(<dynamic>){}
// Public signature: /testBinaryPlus|-1566186978437165994[0]
fun testBinaryPlus(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #testDiv(<dynamic>){}
// Public signature: /testDiv|-5313978605720972233[0]
fun testDiv(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #testMod(<dynamic>){}
// Public signature: /testMod|-4500464822782079065[0]
fun testMod(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #testMul(<dynamic>){}
// Public signature: /testMul|7374329083477531332[0]
fun testMul(d: dynamic): dynamic
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testLess(d: dynamic) = d < 2
fun testLessOrEqual(d: dynamic) = d <= 2
fun testGreater(d: dynamic) = d > 2
@@ -0,0 +1,20 @@
// CHECK JS_IR NATIVE:
// Mangled name: #testGreater(<dynamic>){}
// Public signature: /testGreater|8630519043746384333[0]
fun testGreater(d: dynamic): Boolean
// CHECK JS_IR NATIVE:
// Mangled name: #testGreaterOrEqual(<dynamic>){}
// Public signature: /testGreaterOrEqual|-4223395036536198085[0]
fun testGreaterOrEqual(d: dynamic): Boolean
// CHECK JS_IR NATIVE:
// Mangled name: #testLess(<dynamic>){}
// Public signature: /testLess|7641985245454790157[0]
fun testLess(d: dynamic): Boolean
// CHECK JS_IR NATIVE:
// Mangled name: #testLessOrEqual(<dynamic>){}
// Public signature: /testLessOrEqual|-6484107233559376103[0]
fun testLessOrEqual(d: dynamic): Boolean
+4
View File
@@ -1,5 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun test1(d: dynamic) = d.member(1, 2, 3)
fun test2(d: dynamic) = d?.member(1, 2, 3)
@@ -0,0 +1,15 @@
// CHECK JS_IR NATIVE:
// Mangled name: #test1(<dynamic>){}
// Public signature: /test1|4353482563436034667[0]
fun test1(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test2(<dynamic>){}
// Public signature: /test2|-7945586224410659921[0]
fun test2(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test3(<dynamic>){}
// Public signature: /test3|8250122632028727853[0]
fun test3(d: dynamic): dynamic
@@ -1,3 +1,6 @@
// TARGET_BACKEND: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun test(d: dynamic) = d ?: "other"
@@ -0,0 +1,5 @@
// CHECK JS_IR NATIVE:
// Mangled name: #test(<dynamic>){}
// Public signature: /test|8843648336650546510[0]
fun test(d: dynamic): dynamic
@@ -1,4 +1,8 @@
// TARGET_BACKEND: JS_IR
// IGNORE_BACKEND_K1: JS_IR
// IGNORE_BACKEND_K1: JS_IR_ES6
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun test(d: dynamic) = d!!
@@ -0,0 +1,5 @@
// CHECK JS_IR NATIVE:
// Mangled name: #test(<dynamic>){}
// Public signature: /test|8843648336650546510[0]
fun test(d: dynamic): dynamic
+4 -1
View File
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun test1(d: dynamic) = d foo 123
fun test2(d: dynamic) = d invoke 123
@@ -0,0 +1,10 @@
// CHECK JS_IR NATIVE:
// Mangled name: #test1(<dynamic>){}
// Public signature: /test1|4353482563436034667[0]
fun test1(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test2(<dynamic>){}
// Public signature: /test2|-7945586224410659921[0]
fun test2(d: dynamic): dynamic
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun test1(d: dynamic) = d.member
fun test2(d: dynamic) = d?.member
@@ -0,0 +1,10 @@
// CHECK JS_IR NATIVE:
// Mangled name: #test1(<dynamic>){}
// Public signature: /test1|4353482563436034667[0]
fun test1(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test2(<dynamic>){}
// Public signature: /test2|-7945586224410659921[0]
fun test2(d: dynamic): dynamic
@@ -1,5 +1,8 @@
// TARGET_BACKEND: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testMemberAssignment(d: dynamic) {
d.m = 1
}
@@ -0,0 +1,10 @@
// CHECK:
// Mangled name: #testMemberAssignment(<dynamic>){}
// Public signature: /testMemberAssignment|3403761995191046849[0]
fun testMemberAssignment(d: dynamic): Unit
// CHECK:
// Mangled name: #testSafeMemberAssignment(<dynamic>){}
// Public signature: /testSafeMemberAssignment|1432313440653046937[0]
fun testSafeMemberAssignment(d: dynamic): Unit
@@ -1,5 +1,8 @@
// TARGET_BACKEND: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testAugmentedMemberAssignment(d: dynamic) {
d.m += "+="
d.m -= "-="
@@ -0,0 +1,10 @@
// CHECK:
// Mangled name: #testAugmentedMemberAssignment(<dynamic>){}
// Public signature: /testAugmentedMemberAssignment|6871762003023534167[0]
fun testAugmentedMemberAssignment(d: dynamic): Unit
// CHECK:
// Mangled name: #testSafeAugmentedMemberAssignment(<dynamic>){}
// Public signature: /testSafeAugmentedMemberAssignment|9098819858529650270[0]
fun testSafeAugmentedMemberAssignment(d: dynamic): Unit
@@ -0,0 +1,10 @@
// CHECK:
// Mangled name: #testMemberIncrementDecrement(<dynamic>){}
// Public signature: /testMemberIncrementDecrement|1604694277771575268[0]
fun testMemberIncrementDecrement(d: dynamic): Unit
// CHECK:
// Mangled name: #testSafeMemberIncrementDecrement(<dynamic>){}
// Public signature: /testSafeMemberIncrementDecrement|-4306216465980095979[0]
fun testSafeMemberIncrementDecrement(d: dynamic): Unit
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun testUnaryMinus(d: dynamic) = -d
fun testUnaryPlus(d: dynamic) = +d
fun testExcl(d: dynamic) = !d
@@ -0,0 +1,15 @@
// CHECK JS_IR NATIVE:
// Mangled name: #testExcl(<dynamic>){}
// Public signature: /testExcl|1647775855598193701[0]
fun testExcl(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #testUnaryMinus(<dynamic>){}
// Public signature: /testUnaryMinus|2676344279010670857[0]
fun testUnaryMinus(d: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #testUnaryPlus(<dynamic>){}
// Public signature: /testUnaryPlus|3234645334485860647[0]
fun testUnaryPlus(d: dynamic): dynamic
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// WITH_STDLIB
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun test1(d: dynamic) = if (d is String) d.length else -1
fun test2(d: dynamic) = if (d is Array<*>) d.size else -1
@@ -0,0 +1,10 @@
// CHECK JS_IR NATIVE:
// Mangled name: #test1(<dynamic>){}
// Public signature: /test1|4353482563436034667[0]
fun test1(d: dynamic): Int
// CHECK JS_IR NATIVE:
// Mangled name: #test2(<dynamic>){}
// Public signature: /test2|-7945586224410659921[0]
fun test2(d: dynamic): Int
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
val d: dynamic = 1
val p: Int = d
@@ -0,0 +1,38 @@
// CHECK:
// Mangled name: {}d
// Public signature: /d|5174763769109925331[0]
val d: dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #<get-d>(){}
// Public signature: /d.<get-d>|-6701718004621354461[0]
get
// CHECK:
// Mangled name: {}p
// Public signature: /p|6715504260787941082[0]
val p: Int
// CHECK JS_IR NATIVE:
// Mangled name: #<get-p>(){}
// Public signature: /p.<get-p>|-1162552463316289847[0]
get
// CHECK JS_IR NATIVE:
// Mangled name: #test1(<dynamic>){}
// Public signature: /test1|4353482563436034667[0]
fun test1(d: dynamic): Int
// CHECK JS_IR NATIVE:
// Mangled name: #test2(<dynamic>){}
// Public signature: /test2|-7945586224410659921[0]
fun test2(d: dynamic): Any
// CHECK JS_IR NATIVE:
// Mangled name: #test3(<dynamic>){}
// Public signature: /test3|8250122632028727853[0]
fun test3(d: dynamic): Any?
// CHECK JS_IR NATIVE:
// Mangled name: #test4(<dynamic>){}
// Public signature: /test4|3998898222236566906[0]
fun test4(d: dynamic): String
@@ -1,4 +1,8 @@
// TARGET_BACKEND: JS_IR
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
val d1: dynamic = 1
val p: Int = 1
@@ -0,0 +1,61 @@
// CHECK:
// Mangled name: {}d1
// Public signature: /d1|-2026668325688559202[0]
val d1: dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #<get-d1>(){}
// Public signature: /d1.<get-d1>|3799770350020755350[0]
get
// CHECK:
// Mangled name: {}p
// Public signature: /p|6715504260787941082[0]
val p: Int
// CHECK JS_IR NATIVE:
// Mangled name: #<get-p>(){}
// Public signature: /p.<get-p>|-1162552463316289847[0]
get
// CHECK:
// Mangled name: {}d2
// Public signature: /d2|-7196645270133305146[0]
var d2: dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #<get-d2>(){}
// Public signature: /d2.<get-d2>|-1981535204947042648[0]
get
// CHECK:
// Mangled name: #<set-d2>(<dynamic>){}
// Public signature: /d2.<set-d2>|8009685074731428505[0]
set
// CHECK:
// Mangled name: #test1(kotlin.String){}
// Public signature: /test1|3813564455063048258[0]
fun test1(s: String): Unit
// CHECK:
// Mangled name: #test2(kotlin.Any){}
// Public signature: /test2|-8648451680149324146[0]
fun test2(a: Any): Unit
// CHECK:
// Mangled name: #test3(kotlin.Any?){}
// Public signature: /test3|7681112685114804269[0]
fun test3(a: Any?): Unit
// CHECK:
// Mangled name: #test4(kotlin.Any;kotlin.String;kotlin.Any?){}
// Public signature: /test4|-3496354737059131368[0]
fun test4(a: Any, s: String, na: Any?): Unit
// CHECK:
// Mangled name: #test5(kotlin.Any;kotlin.String;kotlin.Any?){}
// Public signature: /test5|-54558059321704654[0]
fun test5(a: Any, s: String, na: Any?): Unit
// CHECK JS_IR NATIVE:
// Mangled name: #withDynamic(<dynamic>){}
// Public signature: /withDynamic|4181319760857558891[0]
fun withDynamic(d: dynamic): dynamic
+4 -1
View File
@@ -1,6 +1,9 @@
// TARGET_BACKEND: JS_IR
// FIR_IDENTICAL
// MUTE_SIGNATURE_COMPARISON_K2: ANY
// ^ KT-57566
fun invoke() {}
fun test1(a: dynamic) = a(1)
@@ -0,0 +1,40 @@
// CHECK:
// Mangled name: #invoke(){}
// Public signature: /invoke|-4663091332620260873[0]
fun invoke(): Unit
// CHECK JS_IR NATIVE:
// Mangled name: #test1(<dynamic>){}
// Public signature: /test1|4353482563436034667[0]
fun test1(a: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test2(<dynamic>){}
// Public signature: /test2|-7945586224410659921[0]
fun test2(a: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test3(<dynamic>;<dynamic>){}
// Public signature: /test3|-5295421377258897884[0]
fun test3(a: dynamic, b: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test4(<dynamic>;<dynamic>){}
// Public signature: /test4|-1850506594378519629[0]
fun test4(a: dynamic, b: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test5(<dynamic>;<dynamic>){}
// Public signature: /test5|254402909642760010[0]
fun test5(a: dynamic, b: dynamic): dynamic
// CHECK JS_IR NATIVE:
// Mangled name: #test6(<dynamic>;<dynamic>){}
// Public signature: /test6|2790484771664022046[0]
fun test6(a: dynamic, b: dynamic): dynamic
// CHECK:
// Mangled name: #test7(<dynamic>){}
// Public signature: /test7|538407233409957251[0]
fun test7(a: dynamic): Unit