Make Array type parameter T non-reified
This commit is contained in:
@@ -0,0 +1 @@
|
||||
fun f(x: Any) = <!UNCHECKED_CAST!>x as Array<String><!>
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun f(/*0*/ x: kotlin.Any): kotlin.Array<kotlin.String>
|
||||
@@ -1 +0,0 @@
|
||||
fun f(a: Array<out Number>) = a.isArrayOf<Int>()
|
||||
@@ -1,3 +0,0 @@
|
||||
package
|
||||
|
||||
public fun f(/*0*/ a: kotlin.Array<out kotlin.Number>): kotlin.Boolean
|
||||
@@ -1,6 +1,7 @@
|
||||
// !CHECK_TYPE
|
||||
|
||||
fun foo(arr: Array<out Number>): Int {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val result = (arr as Array<Int>)[0]
|
||||
checkSubtype<Array<Int>>(<!DEBUG_INFO_SMARTCAST!>arr<!>)
|
||||
return result
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
// !CHECK_TYPE
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun <T> arrayOf(vararg t : T) : Array<T> = t as Array<T>
|
||||
|
||||
fun test() {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ T> arrayOf(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Array<T>
|
||||
@kotlin.Suppress(names = {"UNCHECKED_CAST"}) public fun </*0*/ T> arrayOf(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Array<T>
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
@@ -27,6 +27,7 @@ fun foo() {
|
||||
// ---------------------
|
||||
// copy from kotlin util (but with `infix` modifier on `map`)
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun <T> array(vararg t : T) : Array<T> = t as Array<T>
|
||||
|
||||
infix fun <T, R> Array<T>.map(<!UNUSED_PARAMETER!>transform<!> : (T) -> R) : List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package
|
||||
|
||||
package a {
|
||||
public fun </*0*/ T> array(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Array<T>
|
||||
@kotlin.Suppress(names = {"UNCHECKED_CAST"}) public fun </*0*/ T> array(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Array<T>
|
||||
public fun foo(): kotlin.Unit
|
||||
public infix fun </*0*/ T, /*1*/ R> kotlin.Array<T>.map(/*0*/ transform: (T) -> R): kotlin.List<R>
|
||||
public infix fun </*0*/ T, /*1*/ R> kotlin.Iterable<T>.map(/*0*/ transform: (T) -> R): kotlin.List<R>
|
||||
|
||||
@@ -13,4 +13,5 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
|
||||
//from library
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun <T> array(vararg t : T) : Array<T> = t as Array<T>
|
||||
@@ -1,6 +1,6 @@
|
||||
package
|
||||
|
||||
package n {
|
||||
public fun </*0*/ T> array(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Array<T>
|
||||
@kotlin.Suppress(names = {"UNCHECKED_CAST"}) public fun </*0*/ T> array(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Array<T>
|
||||
public fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
|
||||
}
|
||||
|
||||
@@ -14,5 +14,5 @@ public fun test()
|
||||
}
|
||||
|
||||
//--------------------
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
fun <T> array(vararg t : T) : Array<T> = t as Array<T>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package
|
||||
|
||||
package a {
|
||||
public fun </*0*/ T> array(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Array<T>
|
||||
@kotlin.Suppress(names = {"UNCHECKED_CAST"}) public fun </*0*/ T> array(/*0*/ vararg t: T /*kotlin.Array<out T>*/): kotlin.Array<T>
|
||||
public fun </*0*/ E> foo(/*0*/ array: kotlin.Array<E>): kotlin.Array<E>
|
||||
public fun test(): kotlin.Unit
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
fun f(a: Array<out Number>) = a.isArrayOf<Int>()
|
||||
|
||||
fun f1(a: Array<out Number>) = a is Array<*>
|
||||
|
||||
fun f2(a: Array<out Number>) = a is <!CANNOT_CHECK_FOR_ERASED!>Array<Int><!>
|
||||
@@ -0,0 +1,5 @@
|
||||
package
|
||||
|
||||
public fun f(/*0*/ a: kotlin.Array<out kotlin.Number>): kotlin.Boolean
|
||||
public fun f1(/*0*/ a: kotlin.Array<out kotlin.Number>): kotlin.Boolean
|
||||
public fun f2(/*0*/ a: kotlin.Array<out kotlin.Number>): kotlin.Boolean
|
||||
Reference in New Issue
Block a user