diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 571bb24c5ae..5c0892c6305 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -10361,6 +10361,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClash.kt"); } + @Test + @TestMetadata("javaEnumEntriesAmbiguity.kt") + public void testJavaEnumEntriesAmbiguity() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.kt"); + } + @Test @TestMetadata("nameShadowingOfExternallyDefinedEntries.kt") public void testNameShadowingOfExternallyDefinedEntries() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index b938ab6fe03..0349a34ecdc 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -10367,6 +10367,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClash.kt"); } + @Test + @TestMetadata("javaEnumEntriesAmbiguity.kt") + public void testJavaEnumEntriesAmbiguity() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.kt"); + } + @Test @TestMetadata("nameShadowingOfExternallyDefinedEntries.kt") public void testNameShadowingOfExternallyDefinedEntries() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index 185cab7039d..4f1a0b03e16 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -10361,6 +10361,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClash.kt"); } + @Test + @TestMetadata("javaEnumEntriesAmbiguity.kt") + public void testJavaEnumEntriesAmbiguity() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.kt"); + } + @Test @TestMetadata("nameShadowingOfExternallyDefinedEntries.kt") public void testNameShadowingOfExternallyDefinedEntries() throws Exception { diff --git a/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.fir.kt new file mode 100644 index 00000000000..325b8ba9c73 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.fir.kt @@ -0,0 +1,32 @@ +// !LANGUAGE: -EnumEntries + +// FILE: JEnumEntry.java + +public enum JEnumEntry { + entries; +} + +// FILE: JEnumStaticField.java + +public enum JEnumStaticField { + ; + + public static final int entries = 0; +} + +// FILE: JEnumField.java + +public enum JEnumField { + ; + + public final int entries = 0; +} + +// FILE: test.kt + +fun test() { + JEnumEntry.entries + JEnumStaticField.entries + + JEnumField::entries +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.kt b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.kt new file mode 100644 index 00000000000..c355d1e375d --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.kt @@ -0,0 +1,32 @@ +// !LANGUAGE: -EnumEntries + +// FILE: JEnumEntry.java + +public enum JEnumEntry { + entries; +} + +// FILE: JEnumStaticField.java + +public enum JEnumStaticField { + ; + + public static final int entries = 0; +} + +// FILE: JEnumField.java + +public enum JEnumField { + ; + + public final int entries = 0; +} + +// FILE: test.kt + +fun test() { + JEnumEntry.entries + JEnumStaticField.entries + + JEnumField::entries +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.txt b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.txt new file mode 100644 index 00000000000..6cac591c564 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.txt @@ -0,0 +1,59 @@ +package + +public fun test(): kotlin.Unit + +public final enum class JEnumEntry : kotlin.Enum { + enum entry entries + + public constructor JEnumEntry() + @kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String + public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int + protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: JEnumEntry!): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit + public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + // Static members + public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): JEnumEntry + public final /*synthesized*/ fun values(): kotlin.Array +} + +public final enum class JEnumField : kotlin.Enum { + public constructor JEnumField() + public final val entries: kotlin.Int = 0 + @kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String + public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int + protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: JEnumField!): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit + public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + // Static members + public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): JEnumField + public final /*synthesized*/ fun values(): kotlin.Array +} + +public final enum class JEnumStaticField : kotlin.Enum { + public constructor JEnumStaticField() + @kotlin.internal.IntrinsicConstEvaluation public final override /*1*/ /*fake_override*/ val name: kotlin.String + public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int + protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any + public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: JEnumStaticField!): kotlin.Int + public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit + public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class! + public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + // Static members + public const final val entries: kotlin.Int = 0 + public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): JEnumStaticField + public final /*synthesized*/ fun values(): kotlin.Array +} + diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index fe2ed0d8959..0dfe932a353 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -10367,6 +10367,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClash.kt"); } + @Test + @TestMetadata("javaEnumEntriesAmbiguity.kt") + public void testJavaEnumEntriesAmbiguity() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguity.kt"); + } + @Test @TestMetadata("nameShadowingOfExternallyDefinedEntries.kt") public void testNameShadowingOfExternallyDefinedEntries() throws Exception {