Prohibit using array based on non-reified type parameters as reified type arguments
#KT-31227 fixed
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -UNCHECKED_CAST -USELESS_CAST
|
||||
// !LANGUAGE: +ProhibitNonReifiedArraysAsReifiedTypeArguments
|
||||
class A<T>
|
||||
|
||||
fun test1(
|
||||
@@ -49,6 +50,6 @@ fun test6() = <!UNSUPPORTED!>foo<!><Nothing>()
|
||||
|
||||
class B<T>(val array: Array<T>)
|
||||
|
||||
fun <T> bar() = B<Array<T>>(arrayOf())
|
||||
fun <T> bar() = B<Array<T>>(<!TYPE_PARAMETER_AS_REIFIED_ARRAY!>arrayOf<!>())
|
||||
|
||||
fun test7() = <!UNSUPPORTED!>bar<!><Nothing>()
|
||||
|
||||
+4
-3
@@ -1,17 +1,18 @@
|
||||
// !USE_EXPERIMENTAL: kotlin.ExperimentalStdlibApi
|
||||
// !LANGUAGE: +ProhibitNonReifiedArraysAsReifiedTypeArguments
|
||||
|
||||
import kotlin.reflect.typeOf
|
||||
|
||||
inline fun <X, reified Y, Z : Y> test1() {
|
||||
<!UNSUPPORTED!>typeOf<!><<!TYPE_PARAMETER_AS_REIFIED!>X<!>>()
|
||||
<!UNSUPPORTED!>typeOf<!><List<X>>()
|
||||
<!UNSUPPORTED!>typeOf<!><Array<X?>>()
|
||||
<!UNSUPPORTED!>typeOf<!><<!TYPE_PARAMETER_AS_REIFIED_ARRAY!>Array<X?><!>>()
|
||||
|
||||
typeOf<Y>()
|
||||
|
||||
<!UNSUPPORTED!>typeOf<!><<!TYPE_PARAMETER_AS_REIFIED!>Z<!>>()
|
||||
<!UNSUPPORTED!>typeOf<!><List<Z>?>()
|
||||
<!UNSUPPORTED!>typeOf<!><Array<Z>>()
|
||||
<!UNSUPPORTED!>typeOf<!><<!TYPE_PARAMETER_AS_REIFIED_ARRAY!>Array<Z><!>>()
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +20,7 @@ class Test2<W> {
|
||||
fun test2() {
|
||||
<!UNSUPPORTED!>typeOf<!><<!TYPE_PARAMETER_AS_REIFIED!>W<!>>()
|
||||
<!UNSUPPORTED!>typeOf<!><List<W?>>()
|
||||
<!UNSUPPORTED!>typeOf<!><Array<W>>()
|
||||
<!UNSUPPORTED!>typeOf<!><<!TYPE_PARAMETER_AS_REIFIED_ARRAY!>Array<W><!>>()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user