c9bdfd2f07
Take into account: 1) resolved call to compareTo (instead of always calling Comparable's method) 2) types of both caller and callee, when primitive, to avoid wrong casting (instead of always using caller's type) #KT-3078 Fixed
15 lines
352 B
Kotlin
15 lines
352 B
Kotlin
class A(val x: Int)
|
|
|
|
fun A.compareTo(other: A) = x.compareTo(other.x)
|
|
|
|
fun checkLess(x: A, y: A) = when {
|
|
x >= y -> "Fail $x >= $y"
|
|
!(x < y) -> "Fail !($x < $y)"
|
|
!(x <= y) -> "Fail !($x <= $y)"
|
|
x > y -> "Fail $x > $y"
|
|
x.compareTo(y) >= 0 -> "Fail $x.compareTo($y) >= 0"
|
|
else -> "OK"
|
|
}
|
|
|
|
fun box() = checkLess(A(0), A(1))
|