Files
kotlin-fork/compiler/testData/codegen/box/boxingOptimization/maxMinBy.kt
T
Dmitry Petrov e1b41eee15 Specialize Comparable#compareTo for boxed primitives
Support Comparable#compareTo for boxed primitive in redundant
boxing/unboxing analysis, along with CHECKCAST to java.lang.Comparable.

Note that we can do that for Float and Double, too, because
Float#compareTo(Float) and Double#compareTo(Double) are delegated to
Float#compare(float, float) and Double#compare(double, double),
respectively.

Fuse specialized comparison for integers with conditional jumps
if possible (both for Comparable#compareTo and Intrinsics#areEqual).

 #KT-11959 Fixed
2017-05-22 11:57:20 +03:00

20 lines
559 B
Kotlin
Vendored

// WITH_RUNTIME
fun box(): String {
val intList = listOf(1, 2, 3)
val longList = listOf(1L, 2L, 3L)
val intListMin = intList.minBy { it }
if (intListMin != 1) return "Fail intListMin=$intListMin"
val intListMax = intList.maxBy { it }
if (intListMax != 3) return "Fail intListMax=$intListMax"
val longListMin = longList.minBy { it }
if (longListMin != 1L) return "Fail longListMin=$longListMin"
val longListMax = longList.maxBy { it }
if (longListMax != 3L) return "Fail longListMax=$longListMax"
return "OK"
}