Ensure that no range instance is created for 'x in array.indices'

This commit is contained in:
Dmitry Petrov
2017-06-30 16:32:13 +03:00
parent 4320b63922
commit 5decf65d6a
7 changed files with 60 additions and 0 deletions
@@ -0,0 +1,21 @@
// WITH_RUNTIME
val ints = intArrayOf(1, 2, 3)
val objs = arrayOf(1, 2, 3)
val i1 = 1
fun box(): String {
// NB partially const-folded in JVM BE
if (!(1 in ints.indices)) return "Fail 1 in IntArray.indices"
if (1 !in ints.indices) return "Fail 1 !in IntArray.indices"
if (!(1 in objs.indices)) return "Fail 1 in Array.indices"
if (1 !in objs.indices) return "Fail 1 !in Array.indices"
if (!(i1 in ints.indices)) return "Fail i1 in IntArray.indices"
if (i1 !in ints.indices) return "Fail i1 !in IntArray.indices"
if (!(i1 in objs.indices)) return "Fail i1 in Array.indices"
if (i1 !in objs.indices) return "Fail i1 !in Array.indices"
return "OK"
}