inline fun Any?.check(): Boolean { return this is T } inline fun Any?.check2(): Boolean { return check() } var log = "" fun log(a: Any?) { log += a.toString() + ";" } fun test(a: Any?) { log(a.check()) log(a.check()) } fun test2(a: Any?) { log(a.check2()) log(a.check2()) } fun box(): String { test("") test(null) test2("") test2(null) if (log != "true;true;false;true;true;true;false;true;") { return "fail" } return "OK" }