KT-5405 J2K: convert for's through indices of some list or array into use of ".indices" + fixed a bug in for-statement conversion

#KT-5405 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-07-09 15:38:49 +04:00
parent 5c688e9916
commit d3a1fa6b9a
16 changed files with 242 additions and 74 deletions
@@ -0,0 +1,2 @@
//statement
for (int i = 0; i * 2 <= 10; i++) { foo(i); }
@@ -0,0 +1,7 @@
run {
var i = 0
while (i * 2 <= 10) {
foo(i)
i++
}
}
@@ -0,0 +1,3 @@
//statement
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {array[i] = i;}
@@ -0,0 +1,4 @@
val array = IntArray(10)
for (i in array.indices) {
array[i] = i
}
@@ -0,0 +1,17 @@
//file
import java.util.List;
import java.util.ArrayList;
class C{
void foo1(List<String> list) {
for (int i = 0; i < list.size(); i++) {
list.set(i, "a");
}
}
void foo2(ArrayList<String> list) {
for (int i = 0; i < list.size(); i++) {
list.set(i, "a");
}
}
}
@@ -0,0 +1,15 @@
import java.util.ArrayList
class C {
fun foo1(list: List<String>) {
for (i in list.indices) {
list.set(i, "a")
}
}
fun foo2(list: ArrayList<String>) {
for (i in list.indices) {
list.set(i, "a")
}
}
}
@@ -0,0 +1,12 @@
//file
class X {
public int length = 5;
}
class C{
void foo(X x) {
for (int i = 0; i < x.length; i++) {
System.out.print(i);
}
}
}
@@ -0,0 +1,11 @@
class X {
public var length: Int = 5
}
class C {
fun foo(x: X) {
for (i in 0..x.length - 1) {
System.out.print(i)
}
}
}
@@ -0,0 +1,12 @@
//file
class X {
public int size() { return 5; }
}
class C{
void foo(X x) {
for (int i = 0; i < x.size(); i++) {
System.out.print(i);
}
}
}
@@ -0,0 +1,13 @@
class X {
public fun size(): Int {
return 5
}
}
class C {
fun foo(x: X) {
for (i in 0..x.size() - 1) {
System.out.print(i)
}
}
}