Support const-bounded for loop generation for reversed 'until'

This commit is contained in:
Dmitry Petrov
2017-12-12 15:07:31 +03:00
parent 54cceac99b
commit bf97b332cf
7 changed files with 86 additions and 10 deletions
@@ -0,0 +1,31 @@
// WITH_RUNTIME
import kotlin.test.*
fun intLow() = 1
fun intHigh() = 5
fun longLow() = 1L
fun longHigh() = 5L
fun charLow() = '1'
fun charHigh() = '5'
fun box(): String {
var sum = 0
for (i in (intLow() until intHigh()).reversed()) {
sum = sum * 10 + i
}
assertEquals(4321, sum)
var sumL = 0L
for (i in (longLow() until longHigh()).reversed()) {
sumL = sumL * 10 + i
}
assertEquals(4321L, sumL)
var sumC = 0
for (i in (charLow() until charHigh()).reversed()) {
sumC = sumC * 10 + i.toInt() - '0'.toInt()
}
assertEquals(4321, sumC)
return "OK"
}