Extract Function: Do not use flexible type as default: use one of its bounds instead

#KT-9099 Fixed
This commit is contained in:
Alexey Sedunov
2015-09-09 14:38:13 +03:00
parent 8a2e2e93e7
commit 2de4de4a1e
5 changed files with 42 additions and 8 deletions
@@ -0,0 +1,7 @@
import java.util.*;
class J {
public List<String> getData() {
return new ArrayList<String>();
}
}
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// PARAM_DESCRIPTOR: val data: (kotlin.MutableList<(kotlin.String..kotlin.String?)>..kotlin.List<(kotlin.String..kotlin.String?)>) defined in test
// PARAM_TYPES: kotlin.List<(kotlin.String..kotlin.String?)>, kotlin.MutableList<(kotlin.String..kotlin.String?)>, kotlin.MutableCollection<(kotlin.String..kotlin.String?)>, kotlin.Collection<(kotlin.String..kotlin.String?)>
fun test(): Boolean {
val j: J? = null
val data = j?.getData() ?: return false
return <selection>data.contains("foo")</selection>
}
@@ -0,0 +1,10 @@
// WITH_RUNTIME
// PARAM_DESCRIPTOR: val data: (kotlin.MutableList<(kotlin.String..kotlin.String?)>..kotlin.List<(kotlin.String..kotlin.String?)>) defined in test
// PARAM_TYPES: kotlin.List<(kotlin.String..kotlin.String?)>, kotlin.MutableList<(kotlin.String..kotlin.String?)>, kotlin.MutableCollection<(kotlin.String..kotlin.String?)>, kotlin.Collection<(kotlin.String..kotlin.String?)>
fun test(): Boolean {
val j: J? = null
val data = j?.getData() ?: return false
return b(data)
}
private fun b(data: List<String>) = data.contains("foo")