Generate for-in-array loops with proper semantics in 1.3+

In Kotlin 1.3+, assignment to the for-in-array loop range variable in
the loop body doesn't affect loop execution (as if it was a loop on an
array iterator, or some other container).

 #KT-21354 In Progress
 #KT-21321 In Progress
This commit is contained in:
Dmitry Petrov
2017-12-04 15:20:19 +03:00
parent 7a6f80606b
commit e4ecc13e13
9 changed files with 74 additions and 23 deletions
@@ -0,0 +1,13 @@
// WITH_RUNTIME
// LANGUAGE_VERSION: 1.2
// IGNORE_BACKEND: JS
fun box(): String {
var xs = intArrayOf(1, 2, 3)
var sum = 0
for (x in xs) {
sum = sum * 10 + x
xs = intArrayOf(4, 5)
}
return if (sum == 15) "OK" else "Fail: $sum"
}