Anonymous object transformation

This commit is contained in:
Mikhael Bogdanov
2014-04-21 13:51:26 +04:00
parent 6fb0050575
commit 9007ba9c53
8 changed files with 231 additions and 125 deletions
@@ -0,0 +1,20 @@
import test.*
fun box() : String {
val o = "O"
return doWork {
val k = "K"
val s = object : A<String>() {
override fun getO(): String {
return o;
}
override fun getK(): String {
return k;
}
}
s.getO() + s.getK()
}
}
@@ -0,0 +1,12 @@
package test
abstract class A<R> {
abstract fun getO() : R
abstract fun getK() : R
}
inline fun <R> doWork(job: ()-> R) : R {
return job()
}