diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt index 741810fbde3..7a56b56f11b 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/symbolLightUtils.kt @@ -199,7 +199,7 @@ internal fun KtAnnotationValue.toAnnotationMemberValue(parent: PsiElement): PsiA is KtAnnotationApplicationValue -> SymbolLightSimpleAnnotation( - fqName = annotationValue.classId?.relativeClassName?.asString(), + fqName = annotationValue.classId?.asFqNameString(), parent = parent, arguments = annotationValue.arguments, kotlinOrigin = annotationValue.psi, diff --git a/analysis/symbol-light-classes/testData/annotationsEquality/Deprecated.java b/analysis/symbol-light-classes/testData/annotationsEquality/Deprecated.java index cb5daaa099c..bb7cc48725b 100644 --- a/analysis/symbol-light-classes/testData/annotationsEquality/Deprecated.java +++ b/analysis/symbol-light-classes/testData/annotationsEquality/Deprecated.java @@ -1,4 +1,4 @@ -@kotlin.Deprecated(message = "", replaceWith = @ReplaceWith(expression = ""), level = kotlin.DeprecationLevel.ERROR) +@kotlin.Deprecated(message = "", replaceWith = @kotlin.ReplaceWith(expression = ""), level = kotlin.DeprecationLevel.ERROR) public final class MyClass /* MyClass*/ { public MyClass();// .ctor() } diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java index 383d61fe597..e90288dfb15 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesByPsiForLibraryTestGenerated.java @@ -30,6 +30,12 @@ public class SymbolLightClassesByPsiForLibraryTestGenerated extends AbstractSymb runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/allowedTargets.kt"); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithSetParamPropertyModifier.kt") public void testAnnotationWithSetParamPropertyModifier() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesEqualityByPsiForLibraryTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesEqualityByPsiForLibraryTestGenerated.java index 1c0cc0873bf..4a546fe4cf0 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesEqualityByPsiForLibraryTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesEqualityByPsiForLibraryTestGenerated.java @@ -30,6 +30,12 @@ public class SymbolLightClassesEqualityByPsiForLibraryTestGenerated extends Abst runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/allowedTargets.kt"); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithSetParamPropertyModifier.kt") public void testAnnotationWithSetParamPropertyModifier() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesParentingByPsiForLibraryTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesParentingByPsiForLibraryTestGenerated.java index 11d68e2feba..1bea799779f 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesParentingByPsiForLibraryTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/SymbolLightClassesParentingByPsiForLibraryTestGenerated.java @@ -30,6 +30,12 @@ public class SymbolLightClassesParentingByPsiForLibraryTestGenerated extends Abs runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/allowedTargets.kt"); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithSetParamPropertyModifier.kt") public void testAnnotationWithSetParamPropertyModifier() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java index cb7a82727c0..1e3c4e1d638 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesByPsiForSourceTestGenerated.java @@ -30,6 +30,12 @@ public class SymbolLightClassesByPsiForSourceTestGenerated extends AbstractSymbo runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/allowedTargets.kt"); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithSetParamPropertyModifier.kt") public void testAnnotationWithSetParamPropertyModifier() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesEqualityByPsiForSourceTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesEqualityByPsiForSourceTestGenerated.java index 2b6de4cf650..45d52554958 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesEqualityByPsiForSourceTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesEqualityByPsiForSourceTestGenerated.java @@ -30,6 +30,12 @@ public class SymbolLightClassesEqualityByPsiForSourceTestGenerated extends Abstr runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/allowedTargets.kt"); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithSetParamPropertyModifier.kt") public void testAnnotationWithSetParamPropertyModifier() throws Exception { diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesParentingByPsiForSourceTestGenerated.java b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesParentingByPsiForSourceTestGenerated.java index d25875d3ff5..51f89edb79c 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesParentingByPsiForSourceTestGenerated.java +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/source/SymbolLightClassesParentingByPsiForSourceTestGenerated.java @@ -30,6 +30,12 @@ public class SymbolLightClassesParentingByPsiForSourceTestGenerated extends Abst runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/allowedTargets.kt"); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithSetParamPropertyModifier.kt") public void testAnnotationWithSetParamPropertyModifier() throws Exception { diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.java new file mode 100644 index 00000000000..e8f84d60150 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.java @@ -0,0 +1,13 @@ +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface A /* a.A*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface B /* b.B*/ { + public abstract a.A param();// param() +} + +@b.B(param = @a.A()) +public final class C /* b.C*/ { + public C();// .ctor() +} diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt b/compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt new file mode 100644 index 00000000000..209e51b1f6f --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/annotationInAnnotationParameters.kt @@ -0,0 +1,17 @@ +// FILE: a/A.kt + +package a + +annotation class A + + +// FILE: b/B.kt + +package b + +import a.A + +annotation class B(val param: A) + +@B(param = A()) +class C \ No newline at end of file diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.fir.txt b/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.fir.txt new file mode 100644 index 00000000000..a0fc58c57bf --- /dev/null +++ b/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.fir.txt @@ -0,0 +1,61 @@ +package a; + +/** + * public final annotation class a/A : kotlin/Annotation { + * + * // signature: ()V + * public constructor() + * + * // module name: main + * } + */ +@kotlin.Metadata() +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface A { +} + +//////////////////// + +package b; + +/** + * public final annotation class b/B : kotlin/Annotation { + * + * // signature: (La/A;)V + * public constructor(value: a/A) + * + * // getter: value()La/A; + * public final val value: a/A + * public final get + * + * // module name: main + * } + */ +@kotlin.Metadata() +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +public abstract @interface B { + + public abstract a.A value(); +} + +//////////////////// + +package b; + +/** + * public final class b/C : kotlin/Any { + * + * // signature: ()V + * public constructor() + * + * // module name: main + * } + */ +@kotlin.Metadata() +@B(value = @a.A()) +public final class C { + + public C() { + super(); + } +} diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.kt b/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.kt new file mode 100644 index 00000000000..e59e18d74da --- /dev/null +++ b/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.kt @@ -0,0 +1,17 @@ +// FILE: a/A.kt + +package a + +annotation class A + + +// FILE: b/B.kt + +package b + +import a.A + +annotation class B(val value: A) + +@B(A()) +class C \ No newline at end of file diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.txt b/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.txt new file mode 100644 index 00000000000..23d69700e52 --- /dev/null +++ b/plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.txt @@ -0,0 +1,61 @@ +package a; + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +/** + * public final annotation class a/A : kotlin/Annotation { + * + * // signature: ()V + * public constructor() + * + * // module name: main + * } + */ +@kotlin.Metadata() +public abstract @interface A { +} + +//////////////////// + +package b; + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +/** + * public final annotation class b/B : kotlin/Annotation { + * + * // signature: (La/A;)V + * public constructor(value: a/A) + * + * // getter: value()La/A; + * public final val value: a/A + * public final get + * + * // module name: main + * } + */ +@kotlin.Metadata() +public abstract @interface B { + + public abstract a.A value(); +} + +//////////////////// + +package b; + +@B(value = @a.A()) +/** + * public final class b/C : kotlin/Any { + * + * // signature: ()V + * public constructor() + * + * // module name: main + * } + */ +@kotlin.Metadata() +public final class C { + + public C() { + super(); + } +} diff --git a/plugins/kapt3/kapt3-compiler/tests-gen/org/jetbrains/kotlin/kapt3/test/runners/ClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/tests-gen/org/jetbrains/kotlin/kapt3/test/runners/ClassFileToSourceStubConverterTestGenerated.java index 39a3fb23ff9..1598b77d7d0 100644 --- a/plugins/kapt3/kapt3-compiler/tests-gen/org/jetbrains/kotlin/kapt3/test/runners/ClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/tests-gen/org/jetbrains/kotlin/kapt3/test/runners/ClassFileToSourceStubConverterTestGenerated.java @@ -43,6 +43,12 @@ public class ClassFileToSourceStubConverterTestGenerated extends AbstractClassFi KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kapt3/kapt3-compiler/testData/converter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithFqNames.kt") public void testAnnotationWithFqNames() throws Exception { diff --git a/plugins/kapt3/kapt3-compiler/tests-gen/org/jetbrains/kotlin/kapt3/test/runners/IrClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/tests-gen/org/jetbrains/kotlin/kapt3/test/runners/IrClassFileToSourceStubConverterTestGenerated.java index 463cdf1ab76..ca9add8bf37 100644 --- a/plugins/kapt3/kapt3-compiler/tests-gen/org/jetbrains/kotlin/kapt3/test/runners/IrClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/tests-gen/org/jetbrains/kotlin/kapt3/test/runners/IrClassFileToSourceStubConverterTestGenerated.java @@ -43,6 +43,12 @@ public class IrClassFileToSourceStubConverterTestGenerated extends AbstractIrCla KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kapt3/kapt3-compiler/testData/converter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("plugins/kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithFqNames.kt") public void testAnnotationWithFqNames() throws Exception { diff --git a/plugins/kapt4/tests-gen/org/jetbrains/kotlin/kapt4/KotlinKapt4ContextTestGenerated.java b/plugins/kapt4/tests-gen/org/jetbrains/kotlin/kapt4/KotlinKapt4ContextTestGenerated.java index 8a9188364d6..2ad19ad4371 100644 --- a/plugins/kapt4/tests-gen/org/jetbrains/kotlin/kapt4/KotlinKapt4ContextTestGenerated.java +++ b/plugins/kapt4/tests-gen/org/jetbrains/kotlin/kapt4/KotlinKapt4ContextTestGenerated.java @@ -43,6 +43,12 @@ public class KotlinKapt4ContextTestGenerated extends AbstractKotlinKapt4ContextT KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kapt4/../kapt3/kapt3-compiler/testData/converter"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("annotationInAnnotationParameters.kt") + public void testAnnotationInAnnotationParameters() throws Exception { + runTest("plugins/kapt4/../kapt3/kapt3-compiler/testData/converter/annotationInAnnotationParameters.kt"); + } + @Test @TestMetadata("annotationWithFqNames.kt") public void testAnnotationWithFqNames() throws Exception {