Report error when LHS of class literal is not a class
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
class A<T> {
|
||||
class Nested<N>
|
||||
|
||||
inner class Inner<I>
|
||||
}
|
||||
|
||||
val a1 = A::class
|
||||
val a2 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>A<*>::class<!>
|
||||
val a3 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>A<String>::class<!>
|
||||
val a4 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>A<out String?>::class<!>
|
||||
|
||||
val n1 = A.Nested::class
|
||||
val n2 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>A.Nested<*>::class<!>
|
||||
|
||||
val i1 = A.Inner::class
|
||||
val i2 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>A<*>.Inner<*>::class<!>
|
||||
val i3 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>A<<!DEBUG_INFO_MISSING_UNRESOLVED!>Int<!>>.Inner<CharSequence>::class<!>
|
||||
|
||||
val m1 = Map::class
|
||||
val m2 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>Map<Int, *>::class<!>
|
||||
val m3 = Map.Entry::class
|
||||
|
||||
val b1 = Int::class
|
||||
val b2 = Nothing::class
|
||||
@@ -0,0 +1,37 @@
|
||||
package
|
||||
|
||||
internal val a1: kotlin.reflect.KClass<A<*>>
|
||||
internal val a2: [ERROR : Unresolved class]
|
||||
internal val a3: [ERROR : Unresolved class]
|
||||
internal val a4: [ERROR : Unresolved class]
|
||||
internal val b1: kotlin.reflect.KClass<kotlin.Int>
|
||||
internal val b2: kotlin.reflect.KClass<kotlin.Nothing>
|
||||
internal val i1: kotlin.reflect.KClass<A.Inner<*>>
|
||||
internal val i2: [ERROR : Unresolved class]
|
||||
internal val i3: [ERROR : Unresolved class]
|
||||
internal val m1: kotlin.reflect.KClass<kotlin.Map<*, *>>
|
||||
internal val m2: [ERROR : Unresolved class]
|
||||
internal val m3: kotlin.reflect.KClass<kotlin.Map.Entry<*, *>>
|
||||
internal val n1: kotlin.reflect.KClass<A.Nested<*>>
|
||||
internal val n2: [ERROR : Unresolved class]
|
||||
|
||||
internal final class A</*0*/ T> {
|
||||
public constructor A</*0*/ T>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
internal final inner class Inner</*0*/ I> {
|
||||
public constructor Inner</*0*/ I>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class Nested</*0*/ N> {
|
||||
public constructor Nested</*0*/ N>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
class A
|
||||
|
||||
val a1 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>A?::class<!>
|
||||
val a2 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>A?<!REDUNDANT_NULLABLE!>?<!>::class<!>
|
||||
|
||||
val l1 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>List<String>?::class<!>
|
||||
val l2 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>List?::class<!>
|
||||
|
||||
fun foo<T : Any>() {
|
||||
val t1 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>T::class<!>
|
||||
val t2 = <!CLASS_LITERAL_LHS_NOT_A_CLASS!>T?::class<!>
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package
|
||||
|
||||
internal val a1: [ERROR : Unresolved class]
|
||||
internal val a2: [ERROR : Unresolved class]
|
||||
internal val l1: [ERROR : Unresolved class]
|
||||
internal val l2: [ERROR : Unresolved class]
|
||||
internal fun </*0*/ T : kotlin.Any> foo(): kotlin.Unit
|
||||
|
||||
internal final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user