| 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 | |
| } |