mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 00:21:47 +00:00
33 lines
686 B
Kotlin
33 lines
686 B
Kotlin
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): Long {
|
|
return output.doOutput(this.data()).toLong()
|
|
}
|
|
|
|
|
|
public inline fun with2<T>(receiver : T, inlineOptions(ONLY_LOCAL_RETURN) body : T.() -> Unit) : Unit = {receiver.body()}()
|