Files
kotlin/compiler/testData/codegen/bytecodeText/boxingOptimization/progressions.kt

30 lines
639 B
Kotlin
Vendored

inline fun <R, T : Iterable<R>> foo(x : T, block : (R) -> R) : R {
val y = x.iterator()
if (y.hasNext()) {
return block(y.next())
} else {
throw RuntimeException()
}
}
fun bar() {
foo((1..100)) { x -> x + 1 }
foo((1L..100L)) { x -> x + 1 }
foo((1.toByte()..100.toByte())) { x -> x }
foo((1.toShort()..100.toShort())) { x -> x }
foo(('a'..'z')) { x -> x }
foo(IntRange(1, 100)) { x -> x + 1 }
foo(LongRange(1L, 100L)) { x -> x + 1 }
foo(CharRange('a', 'z')) { x -> x }
}
// 1 next\s\(
// 4 nextInt
// 2 nextLong
// 0 nextByte
// 0 nextShort
// 2 nextChar
// 0 Value\s\(\)