[FIR2IR] Unconditionally disable linkViaSignatures on JVM

It was an experimental compilation mode that we don't need anymore.

KT-64809
This commit is contained in:
Sergej Jaskiewicz
2024-01-15 17:33:06 +01:00
committed by Space Team
parent 7568ee5a79
commit e8aa05928d
17 changed files with 88 additions and 43 deletions
@@ -0,0 +1,41 @@
// FILE: a.kt
// CHECK JVM_IR:
// Mangled name: #main(){}
// Mangled name for the signature by IR: main(){}
// Mangled name for the signature by Frontend: main(){}%a.kt
// Public signature: /main|-4284757841571462650[0]
// Public signature debug description: main(){}
fun main(): Unit
// FILE: b.kt
// CHECK JVM_IR:
// Mangled name: #main(){}
// Mangled name for the signature by IR: main(){}
// Mangled name for the signature by Frontend: main(){}%b.kt
// Public signature: /main|-4284757841571462650[0]
// Public signature debug description: main(){}
fun main(): Unit
// FILE: c.kt
package foo
// CHECK JVM_IR:
// Mangled name: foo#main(){}
// Mangled name for the signature by IR: main(){}
// Mangled name for the signature by Frontend: main(){}%c.kt
// Public signature: foo/main|-4284757841571462650[0]
// Public signature debug description: main(){}
fun main(): Unit
// FILE: d.kt
package foo
// CHECK JVM_IR:
// Mangled name: foo#main(){}
// Mangled name for the signature by IR: main(){}
// Mangled name for the signature by Frontend: main(){}%d.kt
// Public signature: foo/main|-4284757841571462650[0]
// Public signature debug description: main(){}
fun main(): Unit
@@ -4,6 +4,9 @@
// FIR_IDENTICAL
// WITH_STDLIB
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ The main function has a different mangled name when it's computed from its K1 descriptor in K/JVM.
// FILE: a.kt
fun main() {
println("main() in a.kt")
@@ -6,12 +6,6 @@
// WITH_STDLIB
// SKIP_KLIB_TEST
// IGNORE_BACKEND_K2: JVM_IR
// ^^^ The IrErrorCallExpression inside the body of test1() function is dumped in a different way on JVM K1 and JVM K2.
// That is because `IrErrorCallExpression.description` includes a signature of a local lambda, which is mangled
// differently on K1 and K2. This is not a problem since signatures for local entities do not participate in IR-linkage.
// But the test needs to be muted.
inline fun foo(block: () -> Unit) { block() }
inline fun bar(block1: () -> Unit, noinline block2: () -> Unit) {
@@ -36,10 +36,8 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
// Mangled name: MyMap#computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction<in|1:0{EnhancedNullability},in|1:1,out|1:1?>{EnhancedNullability}){}1:1?
// Mangled name for the signature by IR: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction<in|1:0{EnhancedNullability},in|1:1,out|1:1?>{EnhancedNullability}){}1:1?
// Mangled name for the signature by Frontend: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction<in|1:0{EnhancedNullability},in|1:1{EnhancedNullability},out|1:1?>{EnhancedNullability}){}1:1?
// Public signature by IR: /MyMap.computeIfPresent|-2673672788318360066[0]
// Public signature by IR debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction<in|1:0{EnhancedNullability},in|1:1,out|1:1?>{EnhancedNullability}){}1:1?
// Public signature by Frontend: /MyMap.computeIfPresent|-4313180944690406140[0]
// Public signature by Frontend debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction<in|1:0{EnhancedNullability},in|1:1{EnhancedNullability},out|1:1?>{EnhancedNullability}){}1:1?
// Public signature: /MyMap.computeIfPresent|-2673672788318360066[0]
// Public signature debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction<in|1:0{EnhancedNullability},in|1:1,out|1:1?>{EnhancedNullability}){}1:1?
/* fake */ override fun computeIfPresent(p0: @EnhancedNullability K, p1: @EnhancedNullability BiFunction<in @EnhancedNullability K, in V, out V?>): V?
// CHECK JVM_IR:
@@ -88,20 +86,16 @@ class MyMap<K : Any, V : Any> : AbstractMutableMap<K, V> {
// Mangled name: MyMap#merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction<in|1:1,in|1:1,out|1:1?>{EnhancedNullability}){}1:1?
// Mangled name for the signature by IR: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction<in|1:1,in|1:1,out|1:1?>{EnhancedNullability}){}1:1?
// Mangled name for the signature by Frontend: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction<in|1:1{EnhancedNullability},in|1:1{EnhancedNullability},out|1:1?>{EnhancedNullability}){}1:1?
// Public signature by IR: /MyMap.merge|5136195963180492586[0]
// Public signature by IR debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction<in|1:1,in|1:1,out|1:1?>{EnhancedNullability}){}1:1?
// Public signature by Frontend: /MyMap.merge|-7730033017111273031[0]
// Public signature by Frontend debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction<in|1:1{EnhancedNullability},in|1:1{EnhancedNullability},out|1:1?>{EnhancedNullability}){}1:1?
// Public signature: /MyMap.merge|5136195963180492586[0]
// Public signature debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction<in|1:1,in|1:1,out|1:1?>{EnhancedNullability}){}1:1?
/* fake */ override fun merge(p0: @EnhancedNullability K, p1: @EnhancedNullability (V & Any), p2: @EnhancedNullability BiFunction<in V, in V, out V?>): V?
// CHECK:
// Mangled name: MyMap#putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
// Mangled name for the signature by IR: putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
// Mangled name for the signature by Frontend: putAll(kotlin.collections.Map<out|1:0?,out|1:1?>{EnhancedNullability}){}
// Public signature by IR: /MyMap.putAll|8252374948943605914[0]
// Public signature by IR debug description: putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
// Public signature by Frontend: /MyMap.putAll|2145725647041437129[0]
// Public signature by Frontend debug description: putAll(kotlin.collections.Map<out|1:0?,out|1:1?>{EnhancedNullability}){}
// Public signature: /MyMap.putAll|8252374948943605914[0]
// Public signature debug description: putAll(kotlin.collections.Map<out|1:0?,1:1?>{EnhancedNullability}){}
/* fake */ override fun putAll(p0: @EnhancedNullability Map<out K?, V?>): Unit
// CHECK JVM_IR:
@@ -0,0 +1,17 @@
// CHECK:
// Mangled name: #consumeVarargs(kotlin.IntArray...){}
// Public signature: /consumeVarargs|2702777436513705083[0]
// Public signature debug description: consumeVarargs(kotlin.IntArray...){}
fun consumeVarargs(vararg arr: Int): Unit
// CHECK JVM_IR:
// Mangled name: #main(){}
// Mangled name for the signature by IR: main(){}
// Mangled name for the signature by Frontend: main(){}%IntArrayAsVararg.kt
// Public signature: /main|-4284757841571462650[0]
// Public signature debug description: main(){}
// CHECK JS_IR NATIVE:
// Mangled name: #main(){}
// Public signature: /main|-4284757841571462650[0]
// Public signature debug description: main(){}
fun main(): Unit
@@ -2,6 +2,9 @@
// WITH_STDLIB
// ISSUE: KT-60312
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ The main function has a different mangled name when it's computed from its K1 descriptor in K/JVM.
fun main() {
consumeVarargs(1, 2)
consumeVarargs(arr = intArrayOf(41, 42))