| class A() { | |
| fun action() = "OK" | |
| infix fun infix(a: String) = "O" + a | |
| val property = "OK" | |
| val a : A | |
| get() = A() | |
| } | |
| fun test1() = A()!!.property | |
| fun test2() = (A() as A?)!!.property | |
| fun test3() = A()!!.action() | |
| fun test4() = (A() as A?)!!.action() | |
| fun test5() = (null as A?)!!.action() | |
| fun test6() = A().a.a!!.action() | |
| fun test7() = 10!!.plus(11) | |
| fun test8() = (10 as Int?)!!.plus(11) | |
| fun test9() = A()!! infix "K" | |
| fun test10() = (A() as A?) !! infix "K" | |
| fun test11() = (A() as A?) !! infix("K") | |
| fun test12() = A()!! infix ("K") | |
| fun box() : String { | |
| if(test1() != "OK") return "fail" | |
| if(test2() != "OK") return "fail" | |
| if(test3() != "OK") return "fail" | |
| if(test4() != "OK") return "fail" | |
| try { | |
| test5() | |
| return "fail" | |
| } | |
| catch(e: NullPointerException) { // | |
| } | |
| if(test6() != "OK") return "fail" | |
| if(test7() != 21) return "fail" | |
| if(test8() != 21) return "fail" | |
| if(test9() != "OK") return "fail" | |
| if(test10() != "OK") return "fail" | |
| if(test11() != "OK") return "fail" | |
| if(test12() != "OK") return "fail" | |
| return "OK" | |
| } |