Files
kotlin-fork/js/js.translator/testData/inlineMultiFile/cases/with/with.2.kt
T
2014-10-03 14:23:47 +04:00

39 lines
854 B
Kotlin

/*
* Copy of JVM-backend test
* Found at: compiler/testData/codegen/boxInline/complex/with.2.kt
*/
package test
import kotlin.InlineOption.*
public class Data()
public class Input(val d: Data) : Closeable {
public fun data() : Int = 100
}
public class Output(val d: Data) : Closeable {
public fun doOutput(data: Int): Int = data
}
public open trait Closeable {
open public fun close() {}
}
public inline fun <R> use(block: ()-> R) : R {
return block()
}
public fun <R> useNoInline(block: ()-> R) : R {
return block()
}
public fun Input.copyTo(output: Output, size: Int): Int {
return output.doOutput(this.data())
}
public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()
public inline fun with2<T>(receiver : T, inlineOptions(ONLY_LOCAL_RETURN) body : T.() -> Unit) : Unit = {receiver.body()}()