Multi-declarations supported in all flavours of for loops

(KT-2635 Support iteration with multiple range variable in JVM back-end)
 #KT-2635 Fixed
This commit is contained in:
Andrey Breslav
2012-08-31 12:32:07 +04:00
parent f1c4ab7188
commit ce1320bab3
46 changed files with 1603 additions and 74 deletions
@@ -0,0 +1,19 @@
fun Long.component1() = this + 1
fun Long.component2() = this + 2
fun doTest(l : java.util.ArrayList<Long>): String {
var s = ""
for ((a, b) in l) {
s += "$a:$b;"
}
return s
}
fun box(): String {
val l = java.util.ArrayList<Long>()
l.add(0)
l.add(1)
l.add(2)
val s = doTest(l)
return if (s == "1:2;2:3;3:4;") "OK" else "fail: $s"
}
@@ -0,0 +1,19 @@
fun Long.component1() = this + 1
fun Long.component2() = this + 2
fun doTest(l : java.util.ArrayList<Long>): String {
var s = ""
for ((a, b) in l) {
s += {"$a:$b;"}()
}
return s
}
fun box(): String {
val l = java.util.ArrayList<Long>()
l.add(0)
l.add(1)
l.add(2)
val s = doTest(l)
return if (s == "1:2;2:3;3:4;") "OK" else "fail: $s"
}
@@ -0,0 +1,21 @@
class M {
fun Long.component1() = this + 1
fun Long.component2() = this + 2
fun doTest(l : java.util.ArrayList<Long>): String {
var s = ""
for ((a, b) in l) {
s += "$a:$b;"
}
return s
}
}
fun box(): String {
val l = java.util.ArrayList<Long>()
l.add(0)
l.add(1)
l.add(2)
val s = M().doTest(l)
return if (s == "1:2;2:3;3:4;") "OK" else "fail: $s"
}
@@ -0,0 +1,21 @@
class M {
fun Long.component1() = this + 1
fun Long.component2() = this + 2
}
fun M.doTest(l : java.util.ArrayList<Long>): String {
var s = ""
for ((a, b) in l) {
s += "$a:$b;"
}
return s
}
fun box(): String {
val l = java.util.ArrayList<Long>()
l.add(0)
l.add(1)
l.add(2)
val s = M().doTest(l)
return if (s == "1:2;2:3;3:4;") "OK" else "fail: $s"
}