Support Array::class literal, forbid Array<X>::class on non-JVM

#KT-31230 Fixed
This commit is contained in:
Alexander Udalov
2019-05-02 18:34:20 +02:00
parent 8103f0ba60
commit f38e4d618e
15 changed files with 156 additions and 13 deletions
@@ -0,0 +1,9 @@
// !LANGUAGE: +BareArrayClassLiteral +ProhibitGenericArrayClassLiteral
val a01 = Array::class
val a02 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>Array<<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Array<!>>::class<!>
val a03 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>Array<Any?>::class<!>
val a04 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>Array<Array<Any?>?>::class<!>
val a05 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>Array<IntArray?>::class<!>
val a06 = kotlin.Array::class
val a07 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>kotlin.Array<IntArray?>::class<!>
@@ -0,0 +1,9 @@
package
public val a01: kotlin.reflect.KClass<kotlin.Array<*>>
public val a02: kotlin.reflect.KClass<kotlin.Array<[ERROR : Array]>>
public val a03: kotlin.reflect.KClass<kotlin.Array<kotlin.Any?>>
public val a04: kotlin.reflect.KClass<kotlin.Array<kotlin.Array<kotlin.Any?>?>>
public val a05: kotlin.reflect.KClass<kotlin.Array<kotlin.IntArray?>>
public val a06: kotlin.reflect.KClass<kotlin.Array<*>>
public val a07: kotlin.reflect.KClass<kotlin.Array<kotlin.IntArray?>>
@@ -0,0 +1,7 @@
val a01 = <!ARRAY_CLASS_LITERAL_REQUIRES_ARGUMENT!>Array::class<!>
val a02 = Array<<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>Array<!>>::class
val a03 = Array<Any?>::class
val a04 = Array<Array<Any?>?>::class
val a05 = Array<IntArray?>::class
val a06 = <!ARRAY_CLASS_LITERAL_REQUIRES_ARGUMENT!>kotlin.Array::class<!>
val a07 = kotlin.Array<IntArray?>::class
@@ -0,0 +1,9 @@
package
public val a01: kotlin.reflect.KClass<kotlin.Array<*>>
public val a02: kotlin.reflect.KClass<kotlin.Array<[ERROR : Array]>>
public val a03: kotlin.reflect.KClass<kotlin.Array<kotlin.Any?>>
public val a04: kotlin.reflect.KClass<kotlin.Array<kotlin.Array<kotlin.Any?>?>>
public val a05: kotlin.reflect.KClass<kotlin.Array<kotlin.IntArray?>>
public val a06: kotlin.reflect.KClass<kotlin.Array<*>>
public val a07: kotlin.reflect.KClass<kotlin.Array<kotlin.IntArray?>>