194a1d1c6a
KT-52702
25 lines
796 B
Kotlin
Vendored
25 lines
796 B
Kotlin
Vendored
// IGNORE_BACKEND: JS
|
|
// Check that local variables for inline functions and inline default lambdas start
|
|
// after they are initialized.
|
|
|
|
inline fun spray() {
|
|
val a = Any()
|
|
val b = Any()
|
|
val c = Any()
|
|
val d = Any()
|
|
val e = Any()
|
|
}
|
|
|
|
inline fun f(block: () -> String = { "OK" }): String = block()
|
|
|
|
fun box(): String {
|
|
// On the JVM, this call adds some locals with reference types to the LVT
|
|
// which end after the call returns.
|
|
spray()
|
|
// When inlining `f` we'll reuse the same slots that previously contained
|
|
// locals with reference types for the $i$f$f and $i$a$-f-... variables.
|
|
// Since these locals have integer types D8 would produce a warning if they
|
|
// started before being initialized, which would cause the test to fail.
|
|
return f()
|
|
}
|