Files
kotlin-fork/compiler/testData/codegen/boxWithStdlib/ranges/literal/maxValueMinusTwoToMaxValue.kt
T
Alexander Udalov 33d6347876 Fix loop over a range literal up to MAX_VALUE
#KT-492 In Progress

For Byte, Char and Short explicit casting from Int is removed -- loop parameter
is already stored in an Int anyway. For Int and Long comparison "i < end" at
the beginning of the loop is replaced to "i != end" at the end of the loop + a
special check for an empty loop
2013-06-20 16:02:59 +04:00

64 lines
2.0 KiB
Kotlin

// Auto-generated by org.jetbrains.jet.generators.tests.GenerateRangesCodegenTestData. DO NOT EDIT!
import java.util.ArrayList
import java.lang as j
import java.lang.Integer.MAX_VALUE as MaxI
import java.lang.Integer.MIN_VALUE as MinI
import java.lang.Byte.MAX_VALUE as MaxB
import java.lang.Byte.MIN_VALUE as MinB
import java.lang.Short.MAX_VALUE as MaxS
import java.lang.Short.MIN_VALUE as MinS
import java.lang.Long.MAX_VALUE as MaxL
import java.lang.Long.MIN_VALUE as MinL
import java.lang.Character.MAX_VALUE as MaxC
import java.lang.Character.MIN_VALUE as MinC
fun box(): String {
val list1 = ArrayList<Int>()
for (i in (MaxI - 2)..MaxI) {
list1.add(i)
if (list1.size() > 23) break
}
if (list1 != listOf<Int>(MaxI - 2, MaxI - 1, MaxI)) {
return "Wrong elements for (MaxI - 2)..MaxI: $list1"
}
val list2 = ArrayList<Byte>()
for (i in (MaxB - 2).toByte()..MaxB) {
list2.add(i)
if (list2.size() > 23) break
}
if (list2 != listOf<Byte>((MaxB - 2).toByte(), (MaxB - 1).toByte(), MaxB)) {
return "Wrong elements for (MaxB - 2).toByte()..MaxB: $list2"
}
val list3 = ArrayList<Short>()
for (i in (MaxS - 2).toShort()..MaxS) {
list3.add(i)
if (list3.size() > 23) break
}
if (list3 != listOf<Short>((MaxS - 2).toShort(), (MaxS - 1).toShort(), MaxS)) {
return "Wrong elements for (MaxS - 2).toShort()..MaxS: $list3"
}
val list4 = ArrayList<Long>()
for (i in (MaxL - 2).toLong()..MaxL) {
list4.add(i)
if (list4.size() > 23) break
}
if (list4 != listOf<Long>((MaxL - 2).toLong(), (MaxL - 1).toLong(), MaxL)) {
return "Wrong elements for (MaxL - 2).toLong()..MaxL: $list4"
}
val list5 = ArrayList<Char>()
for (i in (MaxC - 2).toChar()..MaxC) {
list5.add(i)
if (list5.size() > 23) break
}
if (list5 != listOf<Char>((MaxC - 2).toChar(), (MaxC - 1).toChar(), MaxC)) {
return "Wrong elements for (MaxC - 2).toChar()..MaxC: $list5"
}
return "OK"
}