Delegated Properties: Code generation for local properties (JVM)

This commit is contained in:
Dotlin
2015-09-30 02:33:45 +03:00
committed by Mikhael Bogdanov
parent fa523b9af4
commit 4c223845b6
22 changed files with 563 additions and 78 deletions
@@ -0,0 +1,20 @@
package foo
import kotlin.reflect.KProperty
inline fun <T> run(f: () -> T) = f()
class Delegate {
var inner = 1
operator fun getValue(t: Any?, p: KProperty<*>): Int = inner
operator fun setValue(t: Any?, p: KProperty<*>, i: Int) {
inner = i
}
}
fun box(): String {
var prop: Int by Delegate()
run { prop = 2 }
if (prop != 2) return "fail get"
return run { if (prop != 2) "fail set" else "OK" }
}