Copy nested objects of default lambda during inline
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: A.kt
|
||||
|
||||
package test
|
||||
|
||||
inline fun test(s: () -> () -> String = { val z = "Outer"; { "OK" } }) =
|
||||
s()
|
||||
|
||||
val same = test()
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
val inlined = test()
|
||||
if (same::class.java == inlined::class.java) return "fail 1 : ${same::class.java} == ${inlined::class.java}"
|
||||
println (inlined::class.java)
|
||||
return inlined()
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: A.kt
|
||||
|
||||
package test
|
||||
|
||||
inline fun test(s: () -> () -> () -> String = { val z = "Outer"; { { "OK" } } }) =
|
||||
s()
|
||||
|
||||
val same = test()
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
val inlined = test()
|
||||
if (same::class.java == inlined::class.java) return "fail 1 : ${same::class.java} == ${inlined::class.java}"
|
||||
if (same()::class.java == inlined()::class.java) return "fail 2 : ${same()::class.java} == ${inlined()::class.java}"
|
||||
return inlined()()
|
||||
}
|
||||
Reference in New Issue
Block a user