KT-12733 'rangeTo' as a non-qualified call is not optimized in 'for'

Use ResolvedCall corresponding to 'for' loop range expression
for optimized "for-in-range-literal".
Cleanup.
This commit is contained in:
Dmitry Petrov
2016-06-16 09:42:12 +03:00
parent 5e21af7bdd
commit 9240c82934
7 changed files with 95 additions and 65 deletions
@@ -0,0 +1,20 @@
// WITH_RUNTIME
import kotlin.test.assertEquals
fun suppressBoxingOptimization(ni: Int?) {}
fun Int.digitsUpto(end: Int): Int {
var sum = 0
for (i: Int? in rangeTo(end)) {
suppressBoxingOptimization(i)
sum = sum*10 + i!!
}
return sum
}
fun box(): String {
assertEquals(1234, 1.digitsUpto(4))
return "OK"
}