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 f1d72aea3d8..49cc6e0778f 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 @@ -114,6 +114,12 @@ public class SymbolLightClassesByPsiForLibraryTestGenerated extends AbstractSymb runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/dollarsInNameLocal.kt"); } + @Test + @TestMetadata("enumMembers.kt") + public void testEnumMembers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt"); + } + @Test @TestMetadata("enums.kt") public void testEnums() 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 089fe06f716..c645a349339 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 @@ -114,6 +114,12 @@ public class SymbolLightClassesEqualityByPsiForLibraryTestGenerated extends Abst runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/dollarsInNameLocal.kt"); } + @Test + @TestMetadata("enumMembers.kt") + public void testEnumMembers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt"); + } + @Test @TestMetadata("enums.kt") public void testEnums() 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 e24e92076f8..ec257250a19 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 @@ -114,6 +114,12 @@ public class SymbolLightClassesParentingByPsiForLibraryTestGenerated extends Abs runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/dollarsInNameLocal.kt"); } + @Test + @TestMetadata("enumMembers.kt") + public void testEnumMembers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt"); + } + @Test @TestMetadata("enums.kt") public void testEnums() 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 d005e7a2f0b..72d464753da 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 @@ -114,6 +114,12 @@ public class SymbolLightClassesByPsiForSourceTestGenerated extends AbstractSymbo runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/dollarsInNameLocal.kt"); } + @Test + @TestMetadata("enumMembers.kt") + public void testEnumMembers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt"); + } + @Test @TestMetadata("enums.kt") public void testEnums() 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 625e542f0aa..e20f7f1fd42 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 @@ -114,6 +114,12 @@ public class SymbolLightClassesEqualityByPsiForSourceTestGenerated extends Abstr runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/dollarsInNameLocal.kt"); } + @Test + @TestMetadata("enumMembers.kt") + public void testEnumMembers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt"); + } + @Test @TestMetadata("enums.kt") public void testEnums() 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 b3a4d4ef023..f712597bd58 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 @@ -114,6 +114,12 @@ public class SymbolLightClassesParentingByPsiForSourceTestGenerated extends Abst runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/dollarsInNameLocal.kt"); } + @Test + @TestMetadata("enumMembers.kt") + public void testEnumMembers() throws Exception { + runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt"); + } + @Test @TestMetadata("enums.kt") public void testEnums() throws Exception { diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.fir.java new file mode 100644 index 00000000000..6f0b9459853 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.fir.java @@ -0,0 +1,69 @@ +public static final class Companion /* Event.Companion*/ { + @kotlin.jvm.JvmStatic() + @org.jetbrains.annotations.Nullable() + public final Event upTo(@org.jetbrains.annotations.NotNull() State);// upTo(State) + + private Companion();// .ctor() +} + +public static final class Companion /* State.Companion*/ { + private Companion();// .ctor() + + public final boolean done(@org.jetbrains.annotations.NotNull() State);// done(State) +} + +public enum Event /* Event*/ { + ON_CREATE, + ON_START, + ON_STOP, + ON_DESTROY; + + @org.jetbrains.annotations.NotNull() + public static final Event.Companion Companion; + + @kotlin.jvm.JvmStatic() + @org.jetbrains.annotations.Nullable() + public static final Event upTo(State);// upTo(State) + + @org.jetbrains.annotations.NotNull() + public static Event valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static Event[] values();// values() + + @org.jetbrains.annotations.NotNull() + public static kotlin.enums.EnumEntries getEntries();// getEntries() + + private Event();// .ctor() + + class Companion ... +} + +public enum State /* State*/ { + ENQUEUED, + RUNNING, + SUCCEEDED, + FAILED, + BLOCKED, + CANCELLED; + + @org.jetbrains.annotations.NotNull() + public static final State.Companion Companion; + + @org.jetbrains.annotations.NotNull() + public static State valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static State[] values();// values() + + @org.jetbrains.annotations.NotNull() + public static kotlin.enums.EnumEntries getEntries();// getEntries() + + private State();// .ctor() + + public final boolean isAtLeast(State);// isAtLeast(State) + + public final boolean isFinished();// isFinished() + + class Companion ... +} diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.java new file mode 100644 index 00000000000..50b602c5ddd --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.java @@ -0,0 +1,63 @@ +public static final class Companion /* Event.Companion*/ { + @kotlin.jvm.JvmStatic() + @org.jetbrains.annotations.Nullable() + public final Event upTo(@org.jetbrains.annotations.NotNull() State);// upTo(State) + + private Companion();// .ctor() +} + +public static final class Companion /* State.Companion*/ { + private Companion();// .ctor() + + public final boolean done(@org.jetbrains.annotations.NotNull() State);// done(State) +} + +public enum Event /* Event*/ { + ON_CREATE, + ON_START, + ON_STOP, + ON_DESTROY; + + @org.jetbrains.annotations.NotNull() + public static final Event.Companion Companion; + + @kotlin.jvm.JvmStatic() + @org.jetbrains.annotations.Nullable() + public static final Event upTo(@org.jetbrains.annotations.NotNull() State);// upTo(State) + + @org.jetbrains.annotations.NotNull() + public static Event valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static Event[] values();// values() + + private Event();// .ctor() + + class Companion ... +} + +public enum State /* State*/ { + ENQUEUED, + RUNNING, + SUCCEEDED, + FAILED, + BLOCKED, + CANCELLED; + + @org.jetbrains.annotations.NotNull() + public static final State.Companion Companion; + + @org.jetbrains.annotations.NotNull() + public static State valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static State[] values();// values() + + private State();// .ctor() + + public final boolean isAtLeast(@org.jetbrains.annotations.NotNull() State);// isAtLeast(State) + + public final boolean isFinished();// isFinished() + + class Companion ... +} diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt b/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt new file mode 100644 index 00000000000..01cbe00b46c --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.kt @@ -0,0 +1,26 @@ +enum class Event { + ON_CREATE, ON_START, ON_STOP, ON_DESTROY; + companion object { + @JvmStatic + fun upTo(state: State): Event? { + return when(state) { + State.ENQUEUED -> ON_CREATE + State.RUNNING -> ON_START + State.BLOCKED -> ON_STOP + else -> null + } + } + } +} + +enum class State { + ENQUEUED, RUNNING, SUCCEEDED, FAILED, BLOCKED, CANCELLED; + val isFinished: Boolean + get() = this == SUCCEEDED || this == FAILED || this == CANCELLED + fun isAtLeast(state: State): Boolean { + return compareTo(state) >= 0 + } + companion object { + fun done(state: State) = state.isFinished + } +} diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.lib.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.lib.java new file mode 100644 index 00000000000..4908a4dc30a --- /dev/null +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/enumMembers.lib.java @@ -0,0 +1,69 @@ +public static final class Companion /* Event.Companion*/ { + @kotlin.jvm.JvmStatic() + @org.jetbrains.annotations.Nullable() + public final Event upTo(@org.jetbrains.annotations.NotNull() State);// upTo(State) + + private Companion();// .ctor() +} + +public static final class Companion /* State.Companion*/ { + private Companion();// .ctor() + + public final boolean done(@org.jetbrains.annotations.NotNull() State);// done(State) +} + +public enum Event /* Event*/ { + ON_CREATE, + ON_START, + ON_STOP, + ON_DESTROY; + + @org.jetbrains.annotations.NotNull() + public static final Event.Companion Companion; + + @kotlin.jvm.JvmStatic() + @org.jetbrains.annotations.Nullable() + public static final Event upTo(@org.jetbrains.annotations.NotNull() State);// upTo(State) + + @org.jetbrains.annotations.NotNull() + public static Event valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static Event[] values();// values() + + @org.jetbrains.annotations.NotNull() + public static kotlin.enums.EnumEntries getEntries();// getEntries() + + private Event();// .ctor() + + class Companion ... +} + +public enum State /* State*/ { + ENQUEUED, + RUNNING, + SUCCEEDED, + FAILED, + BLOCKED, + CANCELLED; + + @org.jetbrains.annotations.NotNull() + public static final State.Companion Companion; + + @org.jetbrains.annotations.NotNull() + public static State valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String) + + @org.jetbrains.annotations.NotNull() + public static State[] values();// values() + + @org.jetbrains.annotations.NotNull() + public static kotlin.enums.EnumEntries getEntries();// getEntries() + + private State();// .ctor() + + public final boolean isAtLeast(@org.jetbrains.annotations.NotNull() State);// isAtLeast(State) + + public final boolean isFinished();// isFinished() + + class Companion ... +}