AddToCollectionTransformation checks that the result collection type cannot be changed

This commit is contained in:
Valentin Kipyatkov
2016-04-19 18:45:33 +03:00
parent f51c5a19dd
commit db0028c11e
14 changed files with 286 additions and 34 deletions
@@ -0,0 +1,17 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>, p: Int): List<String> {
return if (p > 0) {
val result = ArrayList<String>()
<caret>for (s in list) {
if (s.length > 0) {
result.add(s)
}
}
result
}
else {
emptyList()
}
}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>, p: Int): List<String> {
return if (p > 0) {
<caret>val result = list.filter { it.length > 0 }
result
}
else {
emptyList()
}
}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>): ArrayList<String> {
val result = ArrayList<String>()
<caret>for (s in list) {
if (s.length > 0) {
result.add(s)
}
}
return result
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>): ArrayList<String> {
val result = ArrayList<String>()
<caret>list.filterTo(result) { it.length > 0 }
return result
}
@@ -0,0 +1,17 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>, p: Int): ArrayList<String> {
return if (p > 0) {
val result = ArrayList<String>()
<caret>for (s in list) {
if (s.length > 0) {
result.add(s)
}
}
result
}
else {
ArrayList()
}
}
@@ -0,0 +1,13 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>, p: Int): ArrayList<String> {
return if (p > 0) {
val result = ArrayList<String>()
<caret>list.filterTo(result) { it.length > 0 }
result
}
else {
ArrayList()
}
}
@@ -0,0 +1,14 @@
// WITH_RUNTIME
import java.util.*
fun foo(list: List<String>): ArrayList<String> {
return run {
val result = ArrayList<String>()
<caret>for (s in list) {
if (s.length > 0) {
result.add(s)
}
}
result
}
}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
import java.util.*
fun foo(list: List<String>): ArrayList<String> {
return run {
val result = ArrayList<String>()
<caret>list.filterTo(result) { it.length > 0 }
result
}
}
@@ -0,0 +1,12 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>): MutableList<String> {
val result = ArrayList<String>()
<caret>for (s in list) {
if (s.length > 0) {
result.add(s)
}
}
return result
}
@@ -0,0 +1,9 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>): MutableList<String> {
<caret>val result = list
.filter { it.length > 0 }
.toMutableList()
return result
}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
import java.util.HashSet
fun foo(map: Map<Int, String>): MutableCollection<String> {
val result = HashSet<String>()
<caret>for (s in map.values) {
result.add(s)
}
return result
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
import java.util.HashSet
fun foo(map: Map<Int, String>): MutableCollection<String> {
<caret>val result = map.values.toMutableSet()
return result
}