Made vararg parameters have Array<out T> type
instead of simply Array<T> #KT-1638 Fixed #KT-2163 Fixed #KT-3213 Fixed #KT-4172 Fixed #KT-5534 Fixed
This commit is contained in:
@@ -10,7 +10,7 @@ fun fool(vararg a : Long) : LongArray = a
|
||||
fun food(vararg a : Double) : DoubleArray = a
|
||||
fun foof(vararg a : Float) : FloatArray = a
|
||||
fun foob(vararg a : Boolean) : BooleanArray = a
|
||||
fun foos(vararg a : String) : Array<String> = a
|
||||
fun foos(vararg a : String) : Array<out String> = a
|
||||
|
||||
fun test() {
|
||||
Arrays.asList(1, 2, 3)
|
||||
|
||||
@@ -25,7 +25,7 @@ fun foo() {
|
||||
// ---------------------
|
||||
// copy from kotlin util
|
||||
|
||||
fun <T> array(vararg t : T) : Array<T> = t
|
||||
fun <T> array(vararg t : T) : Array<T> = t as Array<T>
|
||||
|
||||
fun <T, R> Array<T>.map(<!UNUSED_PARAMETER!>transform<!> : (T) -> R) : List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
|
||||
|
||||
@@ -11,4 +11,4 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
|
||||
//from library
|
||||
fun <T> array(vararg t : T) : Array<T> = t
|
||||
fun <T> array(vararg t : T) : Array<T> = t as Array<T>
|
||||
@@ -13,4 +13,4 @@ public fun test()
|
||||
|
||||
//--------------------
|
||||
|
||||
fun <T> array(vararg t : T) : Array<T> = t
|
||||
fun <T> array(vararg t : T) : Array<T> = t as Array<T>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
fun printAll(vararg a : Any) {}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
printAll(*args) // Shouldn't be an error
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
|
||||
internal fun printAll(/*0*/ vararg a: kotlin.Any /*kotlin.Array<out kotlin.Any>*/): kotlin.Unit
|
||||
@@ -0,0 +1,13 @@
|
||||
// !CHECK_TYPE
|
||||
|
||||
fun test(vararg a: String) {
|
||||
a checkType { it : _<Array<out String>> }
|
||||
|
||||
foo(a) checkType { it : _<Array<out String>> }
|
||||
}
|
||||
|
||||
fun <T> test1(vararg t: T) {
|
||||
t checkType { it : _<Array<out T>> }
|
||||
}
|
||||
|
||||
fun <T> foo(a: Array<T>): Array<T> = a
|
||||
@@ -0,0 +1,5 @@
|
||||
package
|
||||
|
||||
internal fun </*0*/ T> foo(/*0*/ a: kotlin.Array<T>): kotlin.Array<T>
|
||||
internal fun test(/*0*/ vararg a: kotlin.String /*kotlin.Array<out kotlin.String>*/): kotlin.Unit
|
||||
internal fun </*0*/ T> test1(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Unit
|
||||
@@ -0,0 +1,9 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
fun bar(vararg a: String) {}
|
||||
|
||||
fun test2(a: Array<String>, b: Array<out String>) {
|
||||
bar(*a)
|
||||
bar(*b)
|
||||
bar("", *a, *b, "")
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun bar(/*0*/ vararg a: kotlin.String /*kotlin.Array<out kotlin.String>*/): kotlin.Unit
|
||||
internal fun test2(/*0*/ a: kotlin.Array<kotlin.String>, /*1*/ b: kotlin.Array<out kotlin.String>): kotlin.Unit
|
||||
Reference in New Issue
Block a user