Load Class<?> as KClass<*> for Java annotations parameters

This commit is contained in:
Denis Zharkov
2015-04-15 19:55:47 +03:00
parent 0abc63261d
commit f5111180c3
53 changed files with 804 additions and 33 deletions
@@ -4,11 +4,11 @@ public open class ClassObjectArrayInParam {
public constructor ClassObjectArrayInParam()
public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ vararg value: java.lang.Class<*> /*kotlin.Array<out java.lang.Class<*>>*/)
public abstract fun value(): kotlin.Array<java.lang.Class<*>>
public constructor Anno(/*0*/ vararg value: kotlin.reflect.KClass<*> /*kotlin.Array<out kotlin.reflect.KClass<*>>*/)
public abstract fun value(): kotlin.Array<kotlin.reflect.KClass<*>>
}
test.ClassObjectArrayInParam.Anno(value = {test.ClassObjectArrayInParam.class, test.ClassObjectArrayInParam.Nested.class, kotlin.String.class}: kotlin.Array<out java.lang.Class<*>>) public open class Nested {
test.ClassObjectArrayInParam.Anno(value = {test.ClassObjectArrayInParam.class, test.ClassObjectArrayInParam.Nested.class, kotlin.String.class}: kotlin.Array<out kotlin.reflect.KClass<*>>) public open class Nested {
public constructor Nested()
}
}
@@ -4,8 +4,8 @@ public open class ClassObjectInParam {
public constructor ClassObjectInParam()
public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: java.lang.Class<*>)
public abstract fun value(): java.lang.Class<*>
public constructor Anno(/*0*/ value: kotlin.reflect.KClass<*>)
public abstract fun value(): kotlin.reflect.KClass<*>
}
test.ClassObjectInParam.Anno(value = test.ClassObjectInParam.class: java.lang.Class<test.ClassObjectInParam>) public open class Nested {
@@ -0,0 +1,11 @@
package test;
public class ClassObjectInParamRaw {
public @interface Anno {
Class value();
Class[] arg();
}
@Anno(value = ClassObjectInParamRaw.class, arg = {})
public static class Nested {}
}
@@ -0,0 +1,15 @@
package test
public open class ClassObjectInParamRaw {
public constructor ClassObjectInParamRaw()
public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ value: kotlin.reflect.KClass<*>, /*1*/ arg: kotlin.Array<kotlin.reflect.KClass<*>>)
public abstract fun arg(): kotlin.Array<kotlin.reflect.KClass<*>>
public abstract fun value(): kotlin.reflect.KClass<*>
}
test.ClassObjectInParamRaw.Anno(arg = {}: kotlin.Array<kotlin.reflect.KClass<*>>, value = test.ClassObjectInParamRaw.class: java.lang.Class<test.ClassObjectInParamRaw>) public open class Nested {
public constructor Nested()
}
}
@@ -0,0 +1,17 @@
package test;
public class ClassObjectInParamVariance {
public @interface Anno {
Class<? extends Integer> arg1();
Class<? super Integer> arg2();
Class<? extends Integer>[] arg3();
Class<? super Integer>[] arg4();
Class<? extends Class<?>>[] arg5();
Class<? super Class<?>>[] arg6();
Class<? extends Class<Integer>>[] arg7();
Class<? super Class<Integer>>[] arg8();
}
}
@@ -0,0 +1,17 @@
package test
public open class ClassObjectInParamVariance {
public constructor ClassObjectInParamVariance()
public final annotation class Anno : kotlin.Annotation {
public constructor Anno(/*0*/ arg1: kotlin.reflect.KClass<out kotlin.Int!>, /*1*/ arg2: kotlin.reflect.KClass<in kotlin.Int!>, /*2*/ arg3: kotlin.Array<kotlin.reflect.KClass<out kotlin.Int!>>, /*3*/ arg4: kotlin.Array<kotlin.reflect.KClass<in kotlin.Int!>>, /*4*/ arg5: kotlin.Array<kotlin.reflect.KClass<out java.lang.Class<*>!>>, /*5*/ arg6: kotlin.Array<kotlin.reflect.KClass<in java.lang.Class<*>!>>, /*6*/ arg7: kotlin.Array<kotlin.reflect.KClass<out java.lang.Class<kotlin.Int!>!>>, /*7*/ arg8: kotlin.Array<kotlin.reflect.KClass<in java.lang.Class<kotlin.Int!>!>>)
public abstract fun arg1(): kotlin.reflect.KClass<out kotlin.Int!>
public abstract fun arg2(): kotlin.reflect.KClass<in kotlin.Int!>
public abstract fun arg3(): kotlin.Array<kotlin.reflect.KClass<out kotlin.Int!>>
public abstract fun arg4(): kotlin.Array<kotlin.reflect.KClass<in kotlin.Int!>>
public abstract fun arg5(): kotlin.Array<kotlin.reflect.KClass<out java.lang.Class<*>!>>
public abstract fun arg6(): kotlin.Array<kotlin.reflect.KClass<in java.lang.Class<*>!>>
public abstract fun arg7(): kotlin.Array<kotlin.reflect.KClass<out java.lang.Class<kotlin.Int!>!>>
public abstract fun arg8(): kotlin.Array<kotlin.reflect.KClass<in java.lang.Class<kotlin.Int!>!>>
}
}