Files
kotlin/compiler/testData/codegen/outerClassInfo/inlineObject.kt
2014-09-16 19:32:37 +04:00

51 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()
}
}
}