| var holder = "" |
| |
| var mainShape: Shape? = null |
| |
| fun getShape(): Shape? { |
| holder += "getShape1()" |
| mainShape = Shape("fail") |
| return mainShape |
| } |
| |
| fun getOK(): String { |
| holder += "->OK" |
| return "OK" |
| } |
| |
| |
| class Shape(var result: String) { |
| |
| var innerShape: Shape? = null |
| |
| fun getShape2(): Shape? { |
| holder += "->getShape2()" |
| innerShape = Shape(result) |
| return innerShape |
| } |
| } |
| |
| fun box(): String { |
| getShape()?.getShape2()?.result = getOK(); |
| |
| if (holder != "getShape1()->getShape2()->OK") return "fail $holder" |
| |
| return mainShape!!.innerShape!!.result |
| } |