diff --git a/compiler/testData/codegen/boxWithStdlib/annotations/defaultParameterValues.kt b/compiler/testData/codegen/boxWithStdlib/annotations/defaultParameterValues.kt index f3394c42db1..304e1fcce29 100644 --- a/compiler/testData/codegen/boxWithStdlib/annotations/defaultParameterValues.kt +++ b/compiler/testData/codegen/boxWithStdlib/annotations/defaultParameterValues.kt @@ -1,5 +1,7 @@ import java.lang.annotation.Retention import java.lang.annotation.RetentionPolicy +import kotlin.reflect.KClass +import kotlin.reflect.jvm.java Retention(RetentionPolicy.RUNTIME) annotation class Ann( @@ -7,7 +9,7 @@ annotation class Ann( val s: String = "a", val a: Ann2 = Ann2(), val e: MyEnum = MyEnum.A, - val c: Class<*> = javaClass(), + val c: KClass<*> = A::class, val ia: IntArray = intArray(1, 2), val sa: Array = array("a", "b") ) @@ -20,7 +22,7 @@ fun box(): String { val annSimpleName = ann.a.annotationType().getSimpleName() if (annSimpleName != "Ann2") return "fail: annotation parameter a should be of class Ann2, but was $annSimpleName" if (ann.e != MyEnum.A) return "fail: annotation parameter e should be MyEnum.A, but was ${ann.e}" - if (ann.c != javaClass()) return "fail: annotation parameter c should be of class A, but was ${ann.c}" + if (ann.c.java != javaClass()) return "fail: annotation parameter c should be of class A, but was ${ann.c}" if (ann.ia[0] != 1 || ann.ia[1] != 2) return "fail: annotation parameter ia should be [1, 2], but was ${ann.ia}" if (ann.sa[0] != "a" || ann.sa[1] != "b") return "fail: annotation parameter ia should be [\"a\", \"b\"], but was ${ann.sa}" return "OK" diff --git a/compiler/testData/resolveAnnotations/testFile.kt b/compiler/testData/resolveAnnotations/testFile.kt index ee98e4e0d4c..4175418b6f2 100644 --- a/compiler/testData/resolveAnnotations/testFile.kt +++ b/compiler/testData/resolveAnnotations/testFile.kt @@ -3,6 +3,7 @@ package test import test.MyEnum.* +import kotlin.reflect.KClass ANNOTATION class MyClass @ANNOTATION constructor(@ANNOTATION param: Int, @ANNOTATION val consProp: Int) { ANNOTATION companion object { @@ -48,7 +49,7 @@ annotation class AnnStringVararg(vararg a: String) annotation class AnnStringArray(a: Array) annotation class AnnArrayOfEnum(a: Array) annotation class AnnAnn(a: AnnInt) -annotation class AnnClass(a: Class<*>) +annotation class AnnClass(a: KClass<*>) enum class MyEnum { A diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/AnnotationGenTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/AnnotationGenTest.java index 0cb84cf2e53..9a448ab186c 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/AnnotationGenTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/AnnotationGenTest.java @@ -307,39 +307,6 @@ public class AnnotationGenTest extends CodegenTestCase { assertEquals("239", cClass.getDeclaredMethod("c").invoke(invoke)); } - public void testAnnotationClassWithClassProperty() - throws - NoSuchFieldException, - NoSuchMethodException, - ClassNotFoundException, - IllegalAccessException, - InstantiationException, - InvocationTargetException { - loadText("import java.lang.annotation.*\n" + - "" + - "Retention(RetentionPolicy.RUNTIME) annotation class A(val a: java.lang.Class<*>)\n" + - "" + - "A(javaClass()) class B()"); - Class aClass = generateClass("A"); - - Retention annotation = (Retention)aClass.getAnnotation(Retention.class); - RetentionPolicy value = annotation.value(); - assertEquals(RetentionPolicy.RUNTIME, value); - - Method[] methods = aClass.getDeclaredMethods(); - assertEquals(1, methods.length); - assertEquals("a", methods[0].getName()); - assertEquals(Class.class, methods[0].getReturnType()); - assertEquals(0, methods[0].getParameterTypes().length); - assertTrue(aClass.isAnnotation()); - - Class bClass = aClass.getClassLoader().loadClass("B"); - Annotation bClassAnnotation = bClass.getAnnotation(aClass); - assertNotNull(bClassAnnotation); - - assertEquals(String.class, methods[0].invoke(bClassAnnotation)); - } - public void testAnnotationClassWithStringArrayProperty() throws NoSuchFieldException, diff --git a/compiler/tests/org/jetbrains/kotlin/resolve/annotation/AnnotationDescriptorResolveTest.java b/compiler/tests/org/jetbrains/kotlin/resolve/annotation/AnnotationDescriptorResolveTest.java index e32c2eceffb..c7cd3436d3c 100644 --- a/compiler/tests/org/jetbrains/kotlin/resolve/annotation/AnnotationDescriptorResolveTest.java +++ b/compiler/tests/org/jetbrains/kotlin/resolve/annotation/AnnotationDescriptorResolveTest.java @@ -86,8 +86,8 @@ public class AnnotationDescriptorResolveTest extends AbstractAnnotationDescripto } public void testJavaClassAnnotation() throws Exception { - String content = getContent("AnnClass(javaClass())"); - String expectedAnnotation = "AnnClass(a = javaClass(): Class)"; + String content = getContent("AnnClass(MyClass::class)"); + String expectedAnnotation = "AnnClass(a = MyClass::class: KClass)"; doTest(content, expectedAnnotation); } }