Files
kotlin/compiler/testData/codegen/outerClassInfo/inlineObject.kt
2014-07-07 10:51:46 +04:00

50 lines
841 B
Kotlin

package foo;
import kotlin.InlineOption.*
class Foo {
inline fun inlineFoo(inlineOptions(ONLY_LOCAL_RETURN) s: () -> Unit) {
val localObject = object {
fun run() {
s()
}
}
localObject.run()
}
inline fun simpleFoo(s: () -> Unit) {
s()
}
}
class Bar {
fun callToInline() {
Foo().inlineFoo { 1 }
}
fun objectInInlineLambda() {
val s = 1;
Foo().simpleFoo {
val localObject = object {
fun run() { s }
}
localObject.run()
}
}
fun objectInLambdaInlinedIntoObject() {
val s = 1;
Foo().inlineFoo {
val localObject = object {
fun run() { s }
}
localObject.run()
}
}
}