blob: 01b69592c8e5f6556dc2aa81d60a6ba03ef86ddf [file] [log] [blame]
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\(\)