JVM_IR: generate more correct names for regenerated objects

and fake lambda types, too. (But those only matter for debugging.)

Also, share object name generators between methods with the same name to
avoid rewriting objects from one with objects from the other.
This commit is contained in:
pyos
2019-08-30 09:45:34 +02:00
committed by max-kammerer
parent 58775275e7
commit 07bde889b4
12 changed files with 74 additions and 16 deletions
@@ -1,5 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND_MULTI_MODULE: JVM_IR
// FILE: 1.kt
package test
@@ -0,0 +1,19 @@
// FILE: 1.kt
package test
inline fun <R> call(crossinline f: () -> R) : R {
return { f() }()
}
// FILE: 2.kt
//NO_CHECK_LAMBDA_INLINING
import test.*
inline fun sameName(s: Long): String = call { "FAIL" }
inline fun sameName(s: Int): String = call { "OK" }
fun box(): String {
val result = sameName(1)
sameName(1L)
return result
}
@@ -1,5 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND_MULTI_MODULE: JVM_IR
// FILE: 1.kt
package test