Frontend: Allow using KClass as annotation parameter type

This commit is contained in:
Denis Zharkov
2015-04-07 17:23:54 +03:00
parent c155b1a455
commit 82674e56b9
23 changed files with 753 additions and 5 deletions
@@ -0,0 +1,27 @@
import kotlin.reflect.KClass
open class A
class B1 : A()
class B2 : A()
annotation class Ann1(val arg: Array<KClass<in A>>)
Ann1(array(A::class))
class MyClass1
Ann1(array(Any::class))
class MyClass1a
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B1::class))
class MyClass2
annotation class Ann2(val arg: Array<KClass<in B1>>)
Ann2(array(A::class))
class MyClass3
Ann2(array(B1::class))
class MyClass4
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B2::class))
class MyClass5
@@ -0,0 +1,80 @@
package
internal open 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
}
internal final annotation class Ann1 : kotlin.Annotation {
public constructor Ann1(/*0*/ arg: kotlin.Array<kotlin.reflect.KClass<in A>>)
internal final val arg: kotlin.Array<kotlin.reflect.KClass<in 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
}
internal final annotation class Ann2 : kotlin.Annotation {
public constructor Ann2(/*0*/ arg: kotlin.Array<kotlin.reflect.KClass<in B1>>)
internal final val arg: kotlin.Array<kotlin.reflect.KClass<in B1>>
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 B1 : A {
public constructor B1()
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 B2 : A {
public constructor B2()
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
}
Ann1(arg = {A::class}: kotlin.Array<kotlin.reflect.KClass<in A>>) internal final class MyClass1 {
public constructor MyClass1()
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
}
Ann1(arg = {kotlin.Any::class}: kotlin.Array<kotlin.reflect.KClass<in A>>) internal final class MyClass1a {
public constructor MyClass1a()
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
}
Ann1(arg = {B1::class}: kotlin.Array<???>) internal final class MyClass2 {
public constructor MyClass2()
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
}
Ann2(arg = {A::class}: kotlin.Array<kotlin.reflect.KClass<in B1>>) internal final class MyClass3 {
public constructor MyClass3()
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
}
Ann2(arg = {B1::class}: kotlin.Array<kotlin.reflect.KClass<in B1>>) internal final class MyClass4 {
public constructor MyClass4()
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
}
Ann2(arg = {B2::class}: kotlin.Array<???>) internal final class MyClass5 {
public constructor MyClass5()
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,27 @@
import kotlin.reflect.KClass
open class A
class B1 : A()
class B2 : A()
annotation class Ann1(val arg: Array<KClass<out A>>)
Ann1(array(A::class))
class MyClass1
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(Any::class))
class MyClass1a
Ann1(array(B1::class))
class MyClass2
annotation class Ann2(val arg: Array<KClass<out B1>>)
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(A::class))
class MyClass3
Ann2(array(B1::class))
class MyClass4
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B2::class))
class MyClass5
@@ -0,0 +1,80 @@
package
internal open 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
}
internal final annotation class Ann1 : kotlin.Annotation {
public constructor Ann1(/*0*/ arg: kotlin.Array<kotlin.reflect.KClass<out A>>)
internal final val arg: kotlin.Array<kotlin.reflect.KClass<out 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
}
internal final annotation class Ann2 : kotlin.Annotation {
public constructor Ann2(/*0*/ arg: kotlin.Array<kotlin.reflect.KClass<out B1>>)
internal final val arg: kotlin.Array<kotlin.reflect.KClass<out B1>>
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 B1 : A {
public constructor B1()
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 B2 : A {
public constructor B2()
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
}
Ann1(arg = {A::class}: kotlin.Array<kotlin.reflect.KClass<out A>>) internal final class MyClass1 {
public constructor MyClass1()
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
}
Ann1(arg = {kotlin.Any::class}: kotlin.Array<???>) internal final class MyClass1a {
public constructor MyClass1a()
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
}
Ann1(arg = {B1::class}: kotlin.Array<kotlin.reflect.KClass<out A>>) internal final class MyClass2 {
public constructor MyClass2()
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
}
Ann2(arg = {A::class}: kotlin.Array<???>) internal final class MyClass3 {
public constructor MyClass3()
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
}
Ann2(arg = {B1::class}: kotlin.Array<kotlin.reflect.KClass<out B1>>) internal final class MyClass4 {
public constructor MyClass4()
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
}
Ann2(arg = {B2::class}: kotlin.Array<???>) internal final class MyClass5 {
public constructor MyClass5()
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,20 @@
import kotlin.reflect.KClass
annotation class Ann1(val arg: KClass<*>)
annotation class Ann2(vararg val arg: KClass<*>)
annotation class Ann3(val arg: Array<KClass<*>>)
class A1
class A2
Ann1(A1::class)
Ann2(A1::class, A2::class)
Ann3(array(A1::class, A2::class))
class MyClass1
Ann1(<!ANNOTATION_PARAMETER_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>A3<!>::class<!>)
class MyClass2
val x = A1::class
Ann1(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>x<!>)
class MyClass3
@@ -0,0 +1,62 @@
package
internal val x: kotlin.reflect.KClass<A1>
internal final class A1 {
public constructor A1()
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 A2 {
public constructor A2()
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 annotation class Ann1 : kotlin.Annotation {
public constructor Ann1(/*0*/ arg: kotlin.reflect.KClass<*>)
internal final val arg: kotlin.reflect.KClass<*>
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 annotation class Ann2 : kotlin.Annotation {
public constructor Ann2(/*0*/ vararg arg: kotlin.reflect.KClass<*> /*kotlin.Array<out kotlin.reflect.KClass<*>>*/)
internal final val arg: kotlin.Array<out kotlin.reflect.KClass<*>>
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 annotation class Ann3 : kotlin.Annotation {
public constructor Ann3(/*0*/ arg: kotlin.Array<kotlin.reflect.KClass<*>>)
internal final val arg: kotlin.Array<kotlin.reflect.KClass<*>>
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
}
Ann1(arg = A1::class: kotlin.reflect.KClass<A1>) Ann2(arg = {A1::class, A2::class}: kotlin.Array<out kotlin.reflect.KClass<*>>) Ann3(arg = {A1::class, A2::class}: kotlin.Array<kotlin.reflect.KClass<*>>) internal final class MyClass1 {
public constructor MyClass1()
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
}
Ann1() internal final class MyClass2 {
public constructor MyClass2()
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
}
Ann1() internal final class MyClass3 {
public constructor MyClass3()
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,27 @@
import kotlin.reflect.KClass
open class A
class B1 : A()
class B2 : A()
annotation class Ann1(val arg: KClass<in A>)
Ann1(A::class)
class MyClass1
Ann1(Any::class)
class MyClass1a
Ann1(<!TYPE_MISMATCH!>B1::class<!>)
class MyClass2
annotation class Ann2(val arg: KClass<in B1>)
Ann2(A::class)
class MyClass3
Ann2(B1::class)
class MyClass4
Ann2(<!TYPE_MISMATCH!>B2::class<!>)
class MyClass5
@@ -0,0 +1,80 @@
package
internal open 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
}
internal final annotation class Ann1 : kotlin.Annotation {
public constructor Ann1(/*0*/ arg: kotlin.reflect.KClass<in A>)
internal final val arg: kotlin.reflect.KClass<in 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
}
internal final annotation class Ann2 : kotlin.Annotation {
public constructor Ann2(/*0*/ arg: kotlin.reflect.KClass<in B1>)
internal final val arg: kotlin.reflect.KClass<in B1>
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 B1 : A {
public constructor B1()
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 B2 : A {
public constructor B2()
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
}
Ann1(arg = A::class: kotlin.reflect.KClass<A>) internal final class MyClass1 {
public constructor MyClass1()
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
}
Ann1(arg = kotlin.Any::class: kotlin.reflect.KClass<kotlin.Any>) internal final class MyClass1a {
public constructor MyClass1a()
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
}
Ann1(arg = B1::class: kotlin.reflect.KClass<B1>) internal final class MyClass2 {
public constructor MyClass2()
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
}
Ann2(arg = A::class: kotlin.reflect.KClass<A>) internal final class MyClass3 {
public constructor MyClass3()
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
}
Ann2(arg = B1::class: kotlin.reflect.KClass<B1>) internal final class MyClass4 {
public constructor MyClass4()
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
}
Ann2(arg = B2::class: kotlin.reflect.KClass<B2>) internal final class MyClass5 {
public constructor MyClass5()
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,27 @@
import kotlin.reflect.KClass
open class A
class B1 : A()
class B2 : A()
annotation class Ann1(val arg: KClass<out A>)
Ann1(A::class)
class MyClass1
Ann1(<!TYPE_MISMATCH!>Any::class<!>)
class MyClass1a
Ann1(B1::class)
class MyClass2
annotation class Ann2(val arg: KClass<out B1>)
Ann2(<!TYPE_MISMATCH!>A::class<!>)
class MyClass3
Ann2(B1::class)
class MyClass4
Ann2(<!TYPE_MISMATCH!>B2::class<!>)
class MyClass5
@@ -0,0 +1,80 @@
package
internal open 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
}
internal final annotation class Ann1 : kotlin.Annotation {
public constructor Ann1(/*0*/ arg: kotlin.reflect.KClass<out A>)
internal final val arg: kotlin.reflect.KClass<out 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
}
internal final annotation class Ann2 : kotlin.Annotation {
public constructor Ann2(/*0*/ arg: kotlin.reflect.KClass<out B1>)
internal final val arg: kotlin.reflect.KClass<out B1>
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 B1 : A {
public constructor B1()
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 B2 : A {
public constructor B2()
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
}
Ann1(arg = A::class: kotlin.reflect.KClass<A>) internal final class MyClass1 {
public constructor MyClass1()
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
}
Ann1(arg = kotlin.Any::class: kotlin.reflect.KClass<kotlin.Any>) internal final class MyClass1a {
public constructor MyClass1a()
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
}
Ann1(arg = B1::class: kotlin.reflect.KClass<B1>) internal final class MyClass2 {
public constructor MyClass2()
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
}
Ann2(arg = A::class: kotlin.reflect.KClass<A>) internal final class MyClass3 {
public constructor MyClass3()
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
}
Ann2(arg = B1::class: kotlin.reflect.KClass<B1>) internal final class MyClass4 {
public constructor MyClass4()
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
}
Ann2(arg = B2::class: kotlin.reflect.KClass<B2>) internal final class MyClass5 {
public constructor MyClass5()
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,23 @@
import kotlin.reflect.KClass
open class A
class B : A()
annotation class Ann1(val arg: KClass<A>)
Ann1(A::class)
class MyClass1
Ann1(<!TYPE_MISMATCH!>Any::class<!>)
class MyClass1a
Ann1(<!TYPE_MISMATCH!>B::class<!>)
class MyClass2
annotation class Ann2(val arg: KClass<B>)
Ann2(<!TYPE_MISMATCH!>A::class<!>)
class MyClass3
Ann2(B::class)
class MyClass4
@@ -0,0 +1,66 @@
package
internal open 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
}
internal final annotation class Ann1 : kotlin.Annotation {
public constructor Ann1(/*0*/ arg: kotlin.reflect.KClass<A>)
internal final val arg: kotlin.reflect.KClass<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
}
internal final annotation class Ann2 : kotlin.Annotation {
public constructor Ann2(/*0*/ arg: kotlin.reflect.KClass<B>)
internal final val arg: kotlin.reflect.KClass<B>
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 B : A {
public constructor B()
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
}
Ann1(arg = A::class: kotlin.reflect.KClass<A>) internal final class MyClass1 {
public constructor MyClass1()
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
}
Ann1(arg = kotlin.Any::class: kotlin.reflect.KClass<kotlin.Any>) internal final class MyClass1a {
public constructor MyClass1a()
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
}
Ann1(arg = B::class: kotlin.reflect.KClass<B>) internal final class MyClass2 {
public constructor MyClass2()
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
}
Ann2(arg = A::class: kotlin.reflect.KClass<A>) internal final class MyClass3 {
public constructor MyClass3()
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
}
Ann2(arg = B::class: kotlin.reflect.KClass<B>) internal final class MyClass4 {
public constructor MyClass4()
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,7 @@
import kotlin.reflect.KClass
open class A
class B1 : A()
class B2 : A()
annotation class Ann1(val arg: Array<out KClass<out A>>)
@@ -0,0 +1,30 @@
package
internal open 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
}
internal final annotation class Ann1 : kotlin.Annotation {
public constructor Ann1(/*0*/ arg: kotlin.Array<out kotlin.reflect.KClass<out A>>)
internal final val arg: kotlin.Array<out kotlin.reflect.KClass<out 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
}
internal final class B1 : A {
public constructor B1()
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 B2 : A {
public constructor B2()
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
}