Tests for for-in optimization with unsigned ranges

This commit is contained in:
Dmitry Petrov
2019-01-09 11:23:14 +03:00
parent a2c618366b
commit e6e0e9976c
3 changed files with 63 additions and 0 deletions
@@ -0,0 +1,53 @@
// IGNORE_BACKEND: JVM_IR
fun testUIntRangeLiteral(a: UInt, b: UInt): Int {
var s = 0
for (x in a .. b) {
s += x.toInt()
}
return s
}
fun testULongRangeLiteral(a: ULong, b: ULong): Int {
var s = 0
for (x in a .. b) {
s += x.toInt()
}
return s
}
fun testUIntUntil(a: UInt, b: UInt): Int {
var s = 0
for (x in a until b) {
s += x.toInt()
}
return s
}
fun testULongUntil(a: ULong, b: ULong): Int {
var s = 0
for (x in a until b) {
s += x.toInt()
}
return s
}
fun testUIntDownTo(a: UInt, b: UInt): Int {
var s = 0
for (x in a downTo b) {
s += x.toInt()
}
return s
}
fun testULongDownTo(a: ULong, b: ULong): Int {
var s = 0
for (x in a downTo b) {
s += x.toInt()
}
return s
}
// 0 iterator
// 0 hasNext
// 0 next