Supported SAM adapters as get/set operators.

This commit is contained in:
Evgeny Gerashchenko
2013-06-26 00:17:14 +04:00
parent 779ea1d7b8
commit b1fb0aafea
9 changed files with 126 additions and 3 deletions
@@ -0,0 +1,6 @@
class JavaClass {
int get(Runnable i) {
i.run();
return 239;
}
}
@@ -0,0 +1,7 @@
fun box(): String {
val obj = JavaClass()
var v = "FAIL"
obj[{ v = "OK" }]
return v
}
@@ -0,0 +1,13 @@
class JavaClass {
int get(Runnable i1, Runnable i2) {
i1.run();
i2.run();
return 239;
}
void set(Runnable i1, Runnable i2, Runnable value) {
i1.run();
i2.run();
value.run();
}
}
@@ -0,0 +1,13 @@
fun box(): String {
val obj = JavaClass()
var v1 = "FAIL"
obj[{ v1 = "O" }, { v1 += "K" }]
if (v1 != "OK") return "get: $v1"
var v2 = "FAIL"
obj[{ v2 = "" }, { v2 += "O" }] = { v2 += "K" }
if (v2 != "OK") return "set: $v2"
return "OK"
}
@@ -0,0 +1,6 @@
class JavaClass {
void set(Runnable i, Runnable value) {
i.run();
value.run();
}
}
@@ -0,0 +1,7 @@
fun box(): String {
val obj = JavaClass()
var v = "FAIL"
obj[{ v = "O" }] = { v += "K" }
return v
}