Quick fix for applying spread operator where vararg is expected #KT-6824 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
6ae4b42164
commit
44e69d8adc
@@ -0,0 +1,10 @@
|
||||
// "Change 'y' to '*y'" "false"
|
||||
// ACTION: Add 'toString()' call
|
||||
// ACTION: Change parameter 'x' type of function 'foo' to 'Array<Int>'
|
||||
// ACTION: Convert to block body
|
||||
// ACTION: Create function 'foo'
|
||||
// DISABLE-ERRORS
|
||||
|
||||
fun foo(vararg x: String) {}
|
||||
|
||||
fun bar(y: Array<Int>) = foo(y<caret>)
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change 'pairs' to '*pairs'" "true"
|
||||
// WITH_RUNTIME
|
||||
|
||||
fun <K, V> yourMapOf(vararg pairs: Pair<K, V>) {}
|
||||
|
||||
fun myMapOf(vararg pairs: Pair<String,String>) {
|
||||
val myMap = yourMapOf(<caret>pairs)
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change 'pairs' to '*pairs'" "true"
|
||||
// WITH_RUNTIME
|
||||
|
||||
fun <K, V> yourMapOf(vararg pairs: Pair<K, V>) {}
|
||||
|
||||
fun myMapOf(vararg pairs: Pair<String,String>) {
|
||||
val myMap = yourMapOf(*pairs)
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// "Change 'pairs' to '*pairs'" "false"
|
||||
// WITH_RUNTIME
|
||||
// ACTION: Create function 'mapOf'
|
||||
// ERROR: Type inference failed: fun <K, V> mapOf(pair: Pair<K, V>): Map<K, V><br>cannot be applied to<br>(Array<out Pair<String, String>>)<br>
|
||||
// ERROR: Type mismatch: inferred type is Array<out Pair<String, String>> but Pair<???, ???> was expected
|
||||
|
||||
|
||||
fun myMapOf(vararg pairs: Pair<String,String>) {
|
||||
// Does not work due to KT-15593
|
||||
val myMap = mapOf(<caret>pairs)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
// "Change 'array' to '*array'" "true"
|
||||
|
||||
fun foo(a: String, vararg x: String, b: Int) {}
|
||||
|
||||
fun bar(array: Array<String>) = foo("aaa", array<caret>, b = 1)
|
||||
@@ -0,0 +1,5 @@
|
||||
// "Change 'array' to '*array'" "true"
|
||||
|
||||
fun foo(a: String, vararg x: String, b: Int) {}
|
||||
|
||||
fun bar(array: Array<String>) = foo("aaa", *array, b = 1)
|
||||
@@ -0,0 +1,12 @@
|
||||
// "Change 'y' to '*y'" "false"
|
||||
// ACTION: Add 'toString()' call
|
||||
// ACTION: Change parameter 'x' type of function 'foo' to 'List<String>'
|
||||
// ACTION: Convert to block body
|
||||
// ACTION: Create function 'foo'
|
||||
// DISABLE-ERRORS
|
||||
|
||||
// Fix this test case if https://youtrack.jetbrains.com/issue/KT-12663 is implemented
|
||||
|
||||
fun foo(vararg x: String) {}
|
||||
|
||||
fun bar(y: List<String>) = foo(y<caret>)
|
||||
@@ -0,0 +1,10 @@
|
||||
// "Change 'y' to '*y'" "false"
|
||||
// ACTION: Add 'toString()' call
|
||||
// ACTION: Change parameter 'x' type of function 'foo' to 'Array<String>'
|
||||
// ACTION: Convert to block body
|
||||
// ACTION: Create function 'foo'
|
||||
// ERROR: Type mismatch: inferred type is Array<String> but String was expected
|
||||
|
||||
fun foo(x: String) {}
|
||||
|
||||
fun bar(y: Array<String>) = foo(y<caret>)
|
||||
@@ -0,0 +1,5 @@
|
||||
// "Change 'y' to '*y'" "true"
|
||||
|
||||
fun foo(vararg x: String) {}
|
||||
|
||||
fun bar(y: Array<String>) = foo(y<caret>)
|
||||
@@ -0,0 +1,5 @@
|
||||
// "Change 'y' to '*y'" "true"
|
||||
|
||||
fun foo(vararg x: String) {}
|
||||
|
||||
fun bar(y: Array<String>) = foo(*y)
|
||||
@@ -0,0 +1,5 @@
|
||||
// "Change 'y' to '*y'" "true"
|
||||
|
||||
fun foo(vararg x: String) {}
|
||||
|
||||
fun bar(vararg y: String) = foo(y<caret>)
|
||||
@@ -0,0 +1,5 @@
|
||||
// "Change 'y' to '*y'" "true"
|
||||
|
||||
fun foo(vararg x: String) {}
|
||||
|
||||
fun bar(vararg y: String) = foo(*y)
|
||||
Reference in New Issue
Block a user