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 0bfd2e6152d..ebfe63c39cc 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 @@ -36,6 +36,12 @@ public class SymbolLightClassesByPsiForLibraryTestGenerated extends AbstractSymb runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/annotations.kt"); } + @Test + @TestMetadata("AnnotationsOnEnumEntry.kt") + public void testAnnotationsOnEnumEntry() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.kt"); + } + @Test @TestMetadata("AnnotationsWithUnresolvedAnnotations.kt") public void testAnnotationsWithUnresolvedAnnotations() 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 21dd0f2eb62..ff7d9f0a00b 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 @@ -36,6 +36,12 @@ public class SymbolLightClassesByPsiForSourceTestGenerated extends AbstractSymbo runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/annotations.kt"); } + @Test + @TestMetadata("AnnotationsOnEnumEntry.kt") + public void testAnnotationsOnEnumEntry() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.kt"); + } + @Test @TestMetadata("AnnotationsWithUnresolvedAnnotations.kt") public void testAnnotationsWithUnresolvedAnnotations() throws Exception { diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.java new file mode 100644 index 00000000000..2217f94feee --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.java @@ -0,0 +1,39 @@ +public enum AnnotationsOnEnumEntry /* two.AnnotationsOnEnumEntry*/ { + @two.PropertyImplicitly() @two.FieldImplicitly() @two.FieldExplicitly() EntryWithoutConstructor, + @two.PropertyImplicitly() @two.FieldImplicitly() EntryWithConstructor, + EntryWithConstructor2; + + @org.jetbrains.annotations.NotNull() + public static two.AnnotationsOnEnumEntry valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static two.AnnotationsOnEnumEntry[] values();// values() + + private AnnotationsOnEnumEntry(int);// .ctor(int) + + public final void foo();// foo() +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.FIELD}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.FIELD}) +public abstract @interface FieldExplicitly /* two.FieldExplicitly*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.FIELD}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.FIELD}) +public abstract @interface FieldImplicitly /* two.FieldImplicitly*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.PROPERTY}) +public abstract @interface PropertyExplicitly /* two.PropertyExplicitly*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.PROPERTY}) +public abstract @interface PropertyImplicitly /* two.PropertyImplicitly*/ { +} diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.kt b/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.kt new file mode 100644 index 00000000000..95caf7c726a --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.kt @@ -0,0 +1,29 @@ +package two + +@Target(AnnotationTarget.PROPERTY) +annotation class PropertyExplicitly + +@Target(AnnotationTarget.PROPERTY) +annotation class PropertyImplicitly + +@Target(AnnotationTarget.FIELD) +annotation class FieldExplicitly + +@Target(AnnotationTarget.FIELD) +annotation class FieldImplicitly + +enum class AnnotationsOnEnumEntry(i: Int = 1) { + @PropertyImplicitly + @property:PropertyExplicitly + @FieldImplicitly + @field:FieldExplicitly + EntryWithoutConstructor, + + @PropertyImplicitly + @FieldImplicitly + EntryWithConstructor(5), + + EntryWithConstructor2(6); + + fun foo() = Unit +} diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.lib.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.lib.java new file mode 100644 index 00000000000..ce8438ebf49 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/AnnotationsOnEnumEntry.lib.java @@ -0,0 +1,39 @@ +public enum AnnotationsOnEnumEntry /* two.AnnotationsOnEnumEntry*/ { + @two.PropertyImplicitly() @two.PropertyExplicitly() @two.FieldImplicitly() @two.FieldExplicitly() EntryWithoutConstructor, + @two.PropertyImplicitly() @two.FieldImplicitly() EntryWithConstructor, + EntryWithConstructor2; + + @org.jetbrains.annotations.NotNull() + public static two.AnnotationsOnEnumEntry valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static two.AnnotationsOnEnumEntry[] values();// values() + + private AnnotationsOnEnumEntry(int);// .ctor(int) + + public final void foo();// foo() +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.FIELD}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.FIELD}) +public abstract @interface FieldExplicitly /* two.FieldExplicitly*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {java.lang.annotation.ElementType.FIELD}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.FIELD}) +public abstract @interface FieldImplicitly /* two.FieldImplicitly*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.PROPERTY}) +public abstract @interface PropertyExplicitly /* two.PropertyExplicitly*/ { +} + +@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME) +@java.lang.annotation.Target(value = {}) +@kotlin.annotation.Target(allowedTargets = {kotlin.annotation.AnnotationTarget.PROPERTY}) +public abstract @interface PropertyImplicitly /* two.PropertyImplicitly*/ { +}