| // FILE: lib.kt | |
| inline fun less(a: Comparable<Double>, b: Double): Boolean { | |
| return a < b | |
| } | |
| inline fun equals(a: Comparable<Double>, b: Comparable<Double>): Boolean { | |
| return a == b | |
| } | |
| inline fun <T: Comparable<Double>> lessGeneric(a: T, b: Double): Boolean { | |
| return a < b | |
| } | |
| inline fun <T: Comparable<Double>> equalsGeneric(a: T, b: Double): Boolean { | |
| return a == b | |
| } | |
| inline fun <reified T: Comparable<Double>> lessReified(a: T, b: Double): Boolean { | |
| return a < b | |
| } | |
| inline fun <reified T: Comparable<Double>> equalsReified(a: T, b: T): Boolean { | |
| return a == b | |
| } | |
| inline fun less754(a: Double, b: Double): Boolean { | |
| return a < b | |
| } | |
| inline fun equals754(a: Double, b: Double): Boolean { | |
| return a == b | |
| } | |
| // FILE: main.kt | |
| fun box(): String { | |
| if (!less(-0.0, 0.0)) return "fail 1" | |
| if (equals(-0.0, 0.0)) return "fail 2" | |
| if (!lessGeneric(-0.0, 0.0)) return "fail 3" | |
| if (equalsGeneric(-0.0, 0.0)) return "fail 4" | |
| if (!lessReified(-0.0, 0.0)) return "fail 5" | |
| if (equalsReified(-0.0, 0.0)) return "fail 6" | |
| if (less754(-0.0, 0.0)) return "fail 7" | |
| if (!equals754(-0.0, 0.0)) return "fail 8" | |
| return "OK" | |
| } |