Files
kotlin/compiler/testData/codegen/bytecodeText/intRangeNoBoxing.kt
Dmitry Petrov 506941e7e0 Optimize range operations for 'until' extension from stdlib (KT-9900)
NB: for-in-until loop is generated as precondition loop, because the
corresponding range is right-exclusive (and thus we have no problems
with integer overflows).
2017-05-04 10:09:42 +03:00

18 lines
693 B
Kotlin
Vendored

fun Int.until(other: Int) = this..other - 1
fun foo() {
val range = 1 until 2
for (i in range) {
}
for (i in 1..2 step 4) {}
}
// 1 INVOKEVIRTUAL kotlin/ranges/IntRange.getFirst \(\)I
// 0 INVOKEVIRTUAL kotlin/ranges/IntRange.getFirst \(\)Ljava/lang/Integer;
// 1 INVOKEVIRTUAL kotlin/ranges/IntRange.getLast \(\)I
// 0 INVOKEVIRTUAL kotlin/ranges/IntRange.getLast \(\)Ljava/lang/Integer;
// 1 INVOKEVIRTUAL kotlin/ranges/IntProgression.getFirst \(\)I
// 0 INVOKEVIRTUAL kotlin/ranges/IntProgression.getFirst \(\)Ljava/lang/Integer;
// 1 INVOKEVIRTUAL kotlin/ranges/IntProgression.getLast \(\)I
// 0 INVOKEVIRTUAL kotlin/ranges/IntProgression.getLast \(\)Ljava/lang/Integer;