Implement quickfix wrapping elements in collection literal calls

#KT-25238 Fixed
This commit is contained in:
Denis Zharkov
2018-07-05 14:27:04 +03:00
parent 189260c013
commit 6f4aa2296d
30 changed files with 375 additions and 43 deletions
@@ -0,0 +1,9 @@
// "class org.jetbrains.kotlin.idea.quickfix.WrapWithCollectionLiteralCallFix" "false"
// ERROR: Type mismatch: inferred type is String but MutableList<String> was expected
// WITH_RUNTIME
fun foo(a: String) {
bar(a<caret>)
}
fun bar(a: MutableList<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'listOf()' call" "true"
// WITH_RUNTIME
fun foo() {
bar(null<caret>)
}
fun bar(a: List<String?>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'listOf()' call" "true"
// WITH_RUNTIME
fun foo() {
bar(listOf(null))
}
fun bar(a: List<String?>) {}
@@ -0,0 +1,7 @@
// "Replace with 'emptyArray()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): Array<String> {
val w = a ?: return null<caret>
return arrayOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptyArray()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): Array<String> {
val w = a ?: return emptyArray()<caret>
return arrayOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptyList()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): Collection<String> {
val w = a ?: return null<caret>
return listOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptyList()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): Collection<String> {
val w = a ?: return emptyList()<caret>
return listOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptyList()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): List<String> {
val w = a ?: return null<caret>
return listOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptyList()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): List<String> {
val w = a ?: return emptyList()<caret>
return listOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptySequence()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): Sequence<String> {
val w = a ?: return null<caret>
return sequenceOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptySequence()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): Sequence<String> {
val w = a ?: return emptySequence()<caret>
return sequenceOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptySet()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): Set<String> {
val w = a ?: return null<caret>
return setOf(w)
}
@@ -0,0 +1,7 @@
// "Replace with 'emptySet()' call" "true"
// WITH_RUNTIME
fun foo(a: String?): Set<String> {
val w = a ?: return emptySet()<caret>
return setOf(w)
}
@@ -0,0 +1,8 @@
// "Wrap element with 'arrayOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(a<caret>)
}
fun bar(a: Array<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'arrayOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(arrayOf(a)<caret>)
}
fun bar(a: Array<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'listOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(a<caret>)
}
fun bar(a: Collection<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'listOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(listOf(a)<caret>)
}
fun bar(a: Collection<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'listOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(a<caret>)
}
fun bar(a: List<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'listOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(listOf(a)<caret>)
}
fun bar(a: List<String>) {}
@@ -0,0 +1,8 @@
// "class org.jetbrains.kotlin.idea.quickfix.WrapWithCollectionLiteralCallFix" "false"
// ERROR: Type mismatch: inferred type is Int but List<String> was expected
fun foo(a: Int) {
bar(a<caret>)
}
fun bar(a: List<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'sequenceOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(a<caret>)
}
fun bar(a: Sequence<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'sequenceOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(sequenceOf(a)<caret>)
}
fun bar(a: Sequence<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'setOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(a<caret>)
}
fun bar(a: Set<String>) {}
@@ -0,0 +1,8 @@
// "Wrap element with 'setOf()' call" "true"
// WITH_RUNTIME
fun foo(a: String) {
bar(setOf(a)<caret>)
}
fun bar(a: Set<String>) {}