Make Array type parameter T non-reified

This commit is contained in:
Alexey Tsvetkov
2015-10-08 18:17:53 +03:00
parent 62c25c0370
commit 5449cea6b7
25 changed files with 62 additions and 29 deletions
@@ -1,5 +1,6 @@
// !CHECK_TYPE
@Suppress("UNCHECKED_CAST")
fun <T> arrayOf(vararg t : T) : Array<T> = t as Array<T>
fun test() {
@@ -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
}