| interface I1 | |
| interface I2 | |
| class C1 : I1 | |
| class C2 : I2 | |
| fun checkI1(o: Any): Boolean = o is I1 | |
| fun checkI2(o: Any): Boolean = o is I2 | |
| fun checkC1(o: Any): Boolean = o is C1 | |
| fun checkC2(o: Any): Boolean = o is C2 | |
| fun box(): String { | |
| val c1 = C1() | |
| val c2 = C2() | |
| val any = Any() | |
| if (!checkI1(c1)) return "FAIL1" | |
| if (checkI2(c1)) return "FAIL2" | |
| if (!checkC1(c1)) return "FAIL3" | |
| if (checkC2(c1)) return "FAIL4" | |
| if (checkI1(c2)) return "FAIL5" | |
| if (!checkI2(c2)) return "FAIL6" | |
| if (checkC1(c2)) return "FAIL7" | |
| if (!checkC2(c2)) return "FAIL8" | |
| if (checkI1(any)) return "FAIL9" | |
| if (checkI2(any)) return "FAIL10" | |
| if (checkC1(any)) return "FAIL11" | |
| if (checkC2(any)) return "FAIL12" | |
| return "OK" | |
| } |