Add tests for KT-48180

This commit is contained in:
pyos
2021-08-10 11:16:22 +02:00
committed by Mikhael Bogdanov
parent ff6de0fe6a
commit d3de0109ca
14 changed files with 231 additions and 0 deletions
@@ -0,0 +1,12 @@
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
package test
inline fun foo(x: () -> String, y: () -> String, z: () -> String = { "" }) =
x() + y() + z()
// FILE: 2.kt
import test.*
fun box(): String = foo("O"::toString, { "K" })
@@ -0,0 +1,15 @@
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
package test
inline fun foo(unused: Long, x: () -> String, y: () -> String, z: () -> String = { "" }) =
x() + y() + z()
// FILE: 2.kt
import test.*
fun box(): String {
val O = "O"
return foo(1L, { O }, { "K" })
}
@@ -0,0 +1,15 @@
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
package test
// This reproduces KT-48180 without captures in the old backend.
// 0 1 2 3 4
inline fun foo(a: Int, b: () -> String, c: () -> String = { "K" }, d: Int = 1, e: Long = 1L) =
b() + c()
// FILE: 2.kt
import test.*
// This is why we can't compute offsets while generating arguments:
// 0 2 [3 is c] 4 5
fun box() = foo(e = 2L, b = { "O" }, d = 1, a = 1)