KT-19565: J2K: Determine mutability using iterator
#KT-19565 fixed
This commit is contained in:
committed by
Simon Ogorodnik
parent
d312996f3a
commit
0722c5c13a
@@ -0,0 +1,19 @@
|
||||
import java.util.*;
|
||||
|
||||
class Iterator {
|
||||
|
||||
Map<String, String> mutableMap1 = new HashMap<>();
|
||||
Map<String, String> mutableMap2 = new HashMap<>();
|
||||
|
||||
void testFields() {
|
||||
mutableMap1.values().add("")
|
||||
mutableMap2.entrySet().iterator().remove();
|
||||
}
|
||||
|
||||
void testFunctionParameters(Collection<String> immutableCollection, List<Integer> mutableList) {
|
||||
for (Iterator<String> it = immutableCollection.iterator(); it.hasNext(); ) {
|
||||
it.next();
|
||||
}
|
||||
mutableList.listIterator().add(2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import java.util.*
|
||||
|
||||
internal class Iterator {
|
||||
|
||||
var mutableMap1: MutableMap<String, String> = HashMap()
|
||||
var mutableMap2: MutableMap<String, String> = HashMap()
|
||||
|
||||
fun testFields() {
|
||||
mutableMap1.values.add("")
|
||||
mutableMap2.entries.iterator().remove()
|
||||
}
|
||||
|
||||
fun testFunctionParameters(immutableCollection: Collection<String>, mutableList: MutableList<Int>) {
|
||||
val it = immutableCollection.iterator()
|
||||
while (it.hasNext()) {
|
||||
it.next()
|
||||
}
|
||||
mutableList.listIterator().add(2)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
public class TestMutableCollection {
|
||||
public final List<String> list = new ArrayList<>();
|
||||
|
||||
public void test() {
|
||||
for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
|
||||
String s = it.next();
|
||||
if (s.equals("")) it.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import java.util.ArrayList
|
||||
|
||||
class TestMutableCollection {
|
||||
val list: MutableList<String> = ArrayList()
|
||||
|
||||
fun test() {
|
||||
val it = list.iterator()
|
||||
while (it.hasNext()) {
|
||||
val s = it.next()
|
||||
if (s == "") it.remove()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user