| var log = "" |
| |
| class A(p: String) { |
| var pp = p |
| |
| init { |
| log += "init($p);" |
| } |
| } |
| |
| operator fun A.plusAssign(s: String) { |
| pp += s |
| log += "pp = $pp;" |
| } |
| |
| class D { |
| val a = A("D") |
| } |
| |
| object E { |
| val t = A("E") |
| } |
| |
| fun box(): String { |
| log = "" |
| val d = D() |
| d.a += "foo" |
| |
| if (log != "init(D);pp = Dfoo;") return "1: log = \"$log\"" |
| |
| log = "" |
| E.t += "ET" |
| |
| if (log != "init(E);pp = EET;") return "2: log = \"$log\"" |
| |
| log = "" |
| val c = object { val b = object { val a = A("xcv") } } |
| c.b.a += "eee" |
| |
| if (log != "init(xcv);pp = xcveee;") return "3: log = \"$log\"" |
| |
| val b = object { val a = A("qwe") } |
| b.a.pp += "ui" |
| |
| if (b.a.pp != "qweui") return "4: b.a.pp = \"${b.a.pp}\"" |
| |
| return "OK" |
| } |