object literals shared vars

This commit is contained in:
Alex Tkachman
2011-10-16 19:16:55 +02:00
parent ada54665db
commit f29768efe9
12 changed files with 163 additions and 71 deletions
@@ -1,10 +1,17 @@
class C() {
val child = object {
fun toString(): String = "child"
class C(x: Int, val y : Int) {
fun initChild(x: Int) : java.lang.Object {
return object : java.lang.Object() {
override fun toString(): String? {
x = x + y
return "child" + x
}
}
}
val child = initChild(x)
}
fun box(): String {
val c = C()
return if (c.child.toString() == "child") "OK" else "fail"
val c = C(10,3)
return if (c.child.toString() == "child13" && c.child.toString() == "child16" && c.child.toString() == "child19") "OK" else "fail"
}
@@ -1,3 +1,4 @@
/*
fun s0() : Boolean {
val y = "222"
val foo = {
@@ -159,8 +160,22 @@ fun t11(x: Int) : Int {
}
return x
}
*/
fun t12(x: Int) : Int {
var y = x
val runnable = object : Runnable {
override fun run () {
y = y + 1
}
}
while(y < 100) {
runnable.run()
}
return y
}
fun box(): String {
/*
if (!s0()) return "fail"
if (!s1()) return "fail"
if (!t1()) return "fail"
@@ -174,6 +189,8 @@ fun box(): String {
if (!t9(0)) return "fail"
if (!t10()) return "fail"
if (t11(1) != 104) return "fail"
*/
if (t12(0) != 100) return "fail"
return "OK"
}