Files
kotlin/compiler/testData/codegen/boxInline/anonymousObject/defineClass.kt
2019-09-06 09:19:57 +03:00

57 lines
975 B
Kotlin
Vendored

// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND_MULTI_MODULE: JVM_IR
// FILE: 1.kt
package test
interface Run {
fun run(): String
}
inline fun i2(crossinline s: () -> String): Run {
return i1 {
object : Run {
override fun run(): String {
return s()
}
}.run()
}
}
inline fun i1(crossinline s: () -> String): Run {
return object : Run {
override fun run(): String {
return s()
}
}
}
// FILE: 2.kt
import test.*
inline fun i4(crossinline s: () -> String): Run {
return i3 {
object : Run {
override fun run(): String {
return s()
}
}.run()
}
}
inline fun i3(crossinline s: () -> String): Run {
return i2 {
object : Run {
override fun run(): String {
return s()
}
}.run()
}
}
fun box(): String {
val i4 = i4 { "OK" }
return i4.run()
}