diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index 38c3ca79816..5820f8f205b 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -11071,6 +11071,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt"); } + @Test + @TestMetadata("conflictingPropertyEntriesAndReferencePrioritized.kt") + public void testConflictingPropertyEntriesAndReferencePrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyAsExtensionClash.kt") public void testEntriesPropertyAsExtensionClash() throws Exception { @@ -11083,6 +11089,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyAsExtensionClashPrioritized.kt") + public void testEntriesPropertyAsExtensionClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyImportedClash.kt") public void testEntriesPropertyImportedClash() throws Exception { @@ -11095,6 +11107,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyImportedClashPrioritized.kt") + public void testEntriesPropertyImportedClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyInCompanionClash.kt") public void testEntriesPropertyInCompanionClash() throws Exception { @@ -11119,6 +11137,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyWithJvmStaticClashPrioritized.kt") + public void testEntriesPropertyWithJvmStaticClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.kt"); + } + @Test @TestMetadata("entriesUnsupported.kt") public void testEntriesUnsupported() throws Exception { @@ -11167,6 +11191,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt"); } + @Test + @TestMetadata("nameShadowingOfExternallyDefinedEntriesPrioritized.kt") + public void testNameShadowingOfExternallyDefinedEntriesPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.kt"); + } + @Test @TestMetadata("redeclarationOfEnumEntriesNameWithIntrinsic.kt") public void testRedeclarationOfEnumEntriesNameWithIntrinsic() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index 301c28edca6..a3c7d6f96d5 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -11071,6 +11071,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt"); } + @Test + @TestMetadata("conflictingPropertyEntriesAndReferencePrioritized.kt") + public void testConflictingPropertyEntriesAndReferencePrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyAsExtensionClash.kt") public void testEntriesPropertyAsExtensionClash() throws Exception { @@ -11083,6 +11089,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyAsExtensionClashPrioritized.kt") + public void testEntriesPropertyAsExtensionClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyImportedClash.kt") public void testEntriesPropertyImportedClash() throws Exception { @@ -11095,6 +11107,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyImportedClashPrioritized.kt") + public void testEntriesPropertyImportedClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyInCompanionClash.kt") public void testEntriesPropertyInCompanionClash() throws Exception { @@ -11119,6 +11137,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyWithJvmStaticClashPrioritized.kt") + public void testEntriesPropertyWithJvmStaticClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.kt"); + } + @Test @TestMetadata("entriesUnsupported.kt") public void testEntriesUnsupported() throws Exception { @@ -11167,6 +11191,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt"); } + @Test + @TestMetadata("nameShadowingOfExternallyDefinedEntriesPrioritized.kt") + public void testNameShadowingOfExternallyDefinedEntriesPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.kt"); + } + @Test @TestMetadata("redeclarationOfEnumEntriesNameWithIntrinsic.kt") public void testRedeclarationOfEnumEntriesNameWithIntrinsic() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index 1811450e002..4809c75e730 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -11071,6 +11071,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt"); } + @Test + @TestMetadata("conflictingPropertyEntriesAndReferencePrioritized.kt") + public void testConflictingPropertyEntriesAndReferencePrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyAsExtensionClash.kt") public void testEntriesPropertyAsExtensionClash() throws Exception { @@ -11083,6 +11089,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyAsExtensionClashPrioritized.kt") + public void testEntriesPropertyAsExtensionClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyImportedClash.kt") public void testEntriesPropertyImportedClash() throws Exception { @@ -11095,6 +11107,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyImportedClashPrioritized.kt") + public void testEntriesPropertyImportedClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyInCompanionClash.kt") public void testEntriesPropertyInCompanionClash() throws Exception { @@ -11119,6 +11137,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyWithJvmStaticClashPrioritized.kt") + public void testEntriesPropertyWithJvmStaticClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.kt"); + } + @Test @TestMetadata("entriesUnsupported.kt") public void testEntriesUnsupported() throws Exception { @@ -11167,6 +11191,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt"); } + @Test + @TestMetadata("nameShadowingOfExternallyDefinedEntriesPrioritized.kt") + public void testNameShadowingOfExternallyDefinedEntriesPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.kt"); + } + @Test @TestMetadata("redeclarationOfEnumEntriesNameWithIntrinsic.kt") public void testRedeclarationOfEnumEntriesNameWithIntrinsic() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index 5a54463894c..ab91c509e63 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -11077,6 +11077,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt"); } + @Test + @TestMetadata("conflictingPropertyEntriesAndReferencePrioritized.kt") + public void testConflictingPropertyEntriesAndReferencePrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyAsExtensionClash.kt") public void testEntriesPropertyAsExtensionClash() throws Exception { @@ -11089,6 +11095,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyAsExtensionClashPrioritized.kt") + public void testEntriesPropertyAsExtensionClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyImportedClash.kt") public void testEntriesPropertyImportedClash() throws Exception { @@ -11101,6 +11113,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyImportedClashPrioritized.kt") + public void testEntriesPropertyImportedClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyInCompanionClash.kt") public void testEntriesPropertyInCompanionClash() throws Exception { @@ -11125,6 +11143,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyWithJvmStaticClashPrioritized.kt") + public void testEntriesPropertyWithJvmStaticClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.kt"); + } + @Test @TestMetadata("entriesUnsupported.kt") public void testEntriesUnsupported() throws Exception { @@ -11173,6 +11197,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt"); } + @Test + @TestMetadata("nameShadowingOfExternallyDefinedEntriesPrioritized.kt") + public void testNameShadowingOfExternallyDefinedEntriesPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.kt"); + } + @Test @TestMetadata("redeclarationOfEnumEntriesNameWithIntrinsic.kt") public void testRedeclarationOfEnumEntriesNameWithIntrinsic() throws Exception { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt index d98fcaf06d5..36a68c8d8eb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.resolve.calls +import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin @@ -95,7 +96,9 @@ class CandidateFactory private constructor( // Flag all property references that are resolved from an convention operator call. result.addDiagnostic(PropertyAsOperator) } - if (symbol is FirPropertySymbol) { + if (symbol is FirPropertySymbol && + !context.session.languageVersionSettings.supportsFeature(LanguageFeature.PrioritizedEnumEntries) + ) { val containingClass = symbol.containingClassLookupTag()?.toFirRegularClass(context.session) if (containingClass != null && symbol.fir.isEnumEntries(containingClass)) { result.addDiagnostic(LowerPriorityToPreserveCompatibilityDiagnostic) diff --git a/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.fir.kt index 0fba517723c..9f47aab862e 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt index 08251f24eb7..bb0a8e245e4 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.fir.kt new file mode 100644 index 00000000000..bb14a8a7159 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.fir.kt @@ -0,0 +1,16 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +enum class E { + ; + + val entries: Int = 0 +} + +fun test() { + E::entries + val ref = E::entries + val refType: (E) -> Int = E::entries + val refTypeWithAnyExpectedType: Any = E::entries +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.fir.txt b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.fir.txt new file mode 100644 index 00000000000..3b171f4fd27 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.fir.txt @@ -0,0 +1,25 @@ +FILE: conflictingPropertyEntriesAndReferencePrioritized.fir.kt + public final enum class E : R|kotlin/Enum| { + private constructor(): R|E| { + super|>() + } + + public final val entries: R|kotlin/Int| = Int(0) + public get(): R|kotlin/Int| + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|E| { + } + + public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + + } + public final fun test(): R|kotlin/Unit| { + Q|E|::R|/E.entries*s| + lval ref: R|kotlin/reflect/KProperty0>| = Q|E|::R|/E.entries*s| + lval refType: R|(E) -> kotlin/Int| = Q|E|::R|/E.entries| + lval refTypeWithAnyExpectedType: R|kotlin/Any| = Q|E|::R|/E.entries*s| + } diff --git a/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.kt b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.kt new file mode 100644 index 00000000000..2fb7f5aa16f --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.kt @@ -0,0 +1,16 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +enum class E { + ; + + val entries: Int = 0 +} + +fun test() { + E::entries + val ref = E::entries + val refType: (E) -> Int = E::entries + val refTypeWithAnyExpectedType: Any = E::entries +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.fir.kt index 776f7da67ea..cc65644bf40 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt index 4b518253561..8c6544d121d 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.fir.kt new file mode 100644 index 00000000000..8fcf3dc3a12 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.fir.kt @@ -0,0 +1,30 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +package pckg + +enum class A { + ; + + companion object +} + +val A.Companion.entries: Int get() = 0 + +fun test() { + A.entries + A.Companion.entries + + with(A) { + this.entries + entries + } + + with(A.Companion) { + entries + } + + val aCompanion = A.Companion + aCompanion.entries +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.fir.txt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.fir.txt new file mode 100644 index 00000000000..4ef0555264d --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.fir.txt @@ -0,0 +1,44 @@ +FILE: entriesPropertyAsExtensionClashPrioritized.fir.kt + package pckg + + public final enum class A : R|kotlin/Enum| { + private constructor(): R|pckg/A| { + super|>() + } + + public final companion object Companion : R|kotlin/Any| { + private constructor(): R|pckg/A.Companion| { + super() + } + + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|pckg/A| { + } + + public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + + } + public final val R|pckg/A.Companion|.entries: R|kotlin/Int| + public get(): R|kotlin/Int| { + ^ Int(0) + } + public final fun test(): R|kotlin/Unit| { + Q|pckg/A|.R|pckg/A.entries*s| + Q|pckg/A.Companion|.R|pckg/entries| + R|kotlin/with|(Q|pckg/A|, = with@fun R|pckg/A.Companion|.(): R|kotlin/Int| { + this@R|special/anonymous|.R|pckg/entries| + ^ this@R|special/anonymous|.R|pckg/entries| + } + ) + R|kotlin/with|(Q|pckg/A.Companion|, = with@fun R|pckg/A.Companion|.(): R|kotlin/Int| { + ^ this@R|special/anonymous|.R|pckg/entries| + } + ) + lval aCompanion: R|pckg/A.Companion| = Q|pckg/A.Companion| + R|/aCompanion|.R|pckg/entries| + } diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.kt new file mode 100644 index 00000000000..32221dcd80a --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.kt @@ -0,0 +1,30 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +package pckg + +enum class A { + ; + + companion object +} + +val A.Companion.entries: Int get() = 0 + +fun test() { + A.entries + A.Companion.entries + + with(A) { + this.entries + entries + } + + with(A.Companion) { + entries + } + + val aCompanion = A.Companion + aCompanion.entries +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.fir.kt index e7b4de44288..9d69fd17383 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt index 5f0809dcd82..f4129e12aef 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.fir.kt new file mode 100644 index 00000000000..af5f5ab197c --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.fir.kt @@ -0,0 +1,23 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +package foo + +import foo.A.Companion.entries + +enum class A { + ; + + companion object { + val entries = 0 + } +} + +fun test() { + A.entries + + with(A) { + entries + } +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.fir.txt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.fir.txt new file mode 100644 index 00000000000..22562378271 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.fir.txt @@ -0,0 +1,35 @@ +FILE: entriesPropertyImportedClashPrioritized.fir.kt + package foo + + public final enum class A : R|kotlin/Enum| { + private constructor(): R|foo/A| { + super|>() + } + + public final companion object Companion : R|kotlin/Any| { + private constructor(): R|foo/A.Companion| { + super() + } + + public final val entries: R|kotlin/Int| = Int(0) + public get(): R|kotlin/Int| + + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|foo/A| { + } + + public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + + } + public final fun test(): R|kotlin/Unit| { + Q|foo/A|.R|foo/A.entries*s| + R|kotlin/with|(Q|foo/A|, = with@fun R|foo/A.Companion|.(): R|kotlin/Int| { + ^ this@R|special/anonymous|.R|foo/A.Companion.entries| + } + ) + } diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.kt new file mode 100644 index 00000000000..709fa4a5cb1 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.kt @@ -0,0 +1,23 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +package foo + +import foo.A.Companion.entries + +enum class A { + ; + + companion object { + val entries = 0 + } +} + +fun test() { + A.entries + + with(A) { + entries + } +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyInCompanionClashOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyInCompanionClashOn.fir.kt index 85c8a1809ef..bf0080025eb 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyInCompanionClashOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyInCompanionClashOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyInCompanionClashOn.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyInCompanionClashOn.kt index a5806e98f9f..0a2183fcbf4 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyInCompanionClashOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyInCompanionClashOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.fir.kt index efa2b4b23f7..8b8d5d448f0 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt index c015fe52293..9a7328e098b 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.fir.kt new file mode 100644 index 00000000000..603730c44d8 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.fir.kt @@ -0,0 +1,22 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +enum class A { + ; + + companion object { + @JvmStatic + val entries = 0 + } +} + +fun test() { + A.entries + + with(A) { + entries + } + + A.Companion.entries +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.fir.txt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.fir.txt new file mode 100644 index 00000000000..3c6edfea3d3 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.fir.txt @@ -0,0 +1,34 @@ +FILE: entriesPropertyWithJvmStaticClashPrioritized.fir.kt + public final enum class A : R|kotlin/Enum| { + private constructor(): R|A| { + super|>() + } + + public final companion object Companion : R|kotlin/Any| { + private constructor(): R|A.Companion| { + super() + } + + @R|kotlin/jvm/JvmStatic|() public final val entries: R|kotlin/Int| = Int(0) + public get(): R|kotlin/Int| + + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|A| { + } + + public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + + } + public final fun test(): R|kotlin/Unit| { + Q|A|.R|/A.entries*s| + R|kotlin/with|(Q|A|, = with@fun R|A.Companion|.(): R|kotlin/Int| { + ^ this@R|special/anonymous|.R|/A.Companion.entries| + } + ) + Q|A.Companion|.R|/A.Companion.entries| + } diff --git a/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.kt b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.kt new file mode 100644 index 00000000000..46db3177adf --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.kt @@ -0,0 +1,22 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +enum class A { + ; + + companion object { + @JvmStatic + val entries = 0 + } +} + +fun test() { + A.entries + + with(A) { + entries + } + + A.Companion.entries +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/enumEntriesAmbiguity.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/enumEntriesAmbiguity.fir.kt index 4f0f9084eae..6d2e715959f 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/enumEntriesAmbiguity.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/enumEntriesAmbiguity.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/enumEntriesAmbiguity.kt b/compiler/testData/diagnostics/tests/enum/entries/enumEntriesAmbiguity.kt index 24be0845378..b65a60fca26 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/enumEntriesAmbiguity.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/enumEntriesAmbiguity.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClashOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClashOn.fir.kt index 3014485d4ac..040461806d6 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClashOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClashOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClashOn.kt b/compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClashOn.kt index 5fcd211cc4a..875be5ff5da 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClashOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/genericEntriesPropertyClashOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguityOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguityOn.fir.kt index 604073d60c0..3f0203cafe0 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguityOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguityOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguityOn.kt b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguityOn.kt index 22cdc603e6d..5afcbc72880 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguityOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/javaEnumEntriesAmbiguityOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.fir.kt index af16bd3a256..d81d16cff44 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt index 976a9ce55e8..aacf40aba28 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.fir.kt new file mode 100644 index 00000000000..8c7745a4e37 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.fir.kt @@ -0,0 +1,41 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +package pckg + +val entries = "E" + +enum class E { + ; + + fun foo() { + entries.length + pckg.entries.length + } +} + +class A { + enum class E { + ; + + class B { + fun foo() { + entries.length + pckg.entries.length + } + } + + class C { + val entries = 0 + + fun foo() { + // technically, this warning is incorrect but I believe it's OK to report anyway + // first, logic in the compiler will be complicated if we'll try to avoid reporting warnings here + // second, this code smells, it'd be better to use qualifiers here anyway + entries + 4 + this.entries + 4 + } + } + } +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.fir.txt b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.fir.txt new file mode 100644 index 00000000000..7a3564f378f --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.fir.txt @@ -0,0 +1,74 @@ +FILE: nameShadowingOfExternallyDefinedEntriesPrioritized.fir.kt + package pckg + + public final val entries: R|kotlin/String| = String(E) + public get(): R|kotlin/String| + public final enum class E : R|kotlin/Enum| { + private constructor(): R|pckg/E| { + super|>() + } + + public final fun foo(): R|kotlin/Unit| { + R|pckg/E.entries*s|.# + Q|pckg|.R|pckg/entries|.R|kotlin/String.length| + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|pckg/E| { + } + + public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + + } + public final class A : R|kotlin/Any| { + public constructor(): R|pckg/A| { + super() + } + + public final enum class E : R|kotlin/Enum| { + private constructor(): R|pckg/A.E| { + super|>() + } + + public final class B : R|kotlin/Any| { + public constructor(): R|pckg/A.E.B| { + super() + } + + public final fun foo(): R|kotlin/Unit| { + R|pckg/A.E.entries*s|.# + Q|pckg|.R|pckg/entries|.R|kotlin/String.length| + } + + } + + public final class C : R|kotlin/Any| { + public constructor(): R|pckg/A.E.C| { + super() + } + + public final val entries: R|kotlin/Int| = Int(0) + public get(): R|kotlin/Int| + + public final fun foo(): R|kotlin/Unit| { + this@R|pckg/A.E.C|.R|pckg/A.E.C.entries|.R|kotlin/Int.plus|(Int(4)) + this@R|pckg/A.E.C|.R|pckg/A.E.C.entries|.R|kotlin/Int.plus|(Int(4)) + } + + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|pckg/A.E| { + } + + public final static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + + } + + } diff --git a/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.kt b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.kt new file mode 100644 index 00000000000..5fba339ed45 --- /dev/null +++ b/compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.kt @@ -0,0 +1,41 @@ +// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries +// WITH_STDLIB +// FIR_DUMP + +package pckg + +val entries = "E" + +enum class E { + ; + + fun foo() { + entries.length + pckg.entries.length + } +} + +class A { + enum class E { + ; + + class B { + fun foo() { + entries.length + pckg.entries.length + } + } + + class C { + val entries = 0 + + fun foo() { + // technically, this warning is incorrect but I believe it's OK to report anyway + // first, logic in the compiler will be complicated if we'll try to avoid reporting warnings here + // second, this code smells, it'd be better to use qualifiers here anyway + entries + 4 + this.entries + 4 + } + } + } +} diff --git a/compiler/testData/diagnostics/tests/enum/entries/redeclarationOfEnumEntriesNameWithIntrinsicOn.fir.kt b/compiler/testData/diagnostics/tests/enum/entries/redeclarationOfEnumEntriesNameWithIntrinsicOn.fir.kt index e26fcd6cb98..ca999174acb 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/redeclarationOfEnumEntriesNameWithIntrinsicOn.fir.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/redeclarationOfEnumEntriesNameWithIntrinsicOn.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP diff --git a/compiler/testData/diagnostics/tests/enum/entries/redeclarationOfEnumEntriesNameWithIntrinsicOn.kt b/compiler/testData/diagnostics/tests/enum/entries/redeclarationOfEnumEntriesNameWithIntrinsicOn.kt index 846400beac6..72180868216 100644 --- a/compiler/testData/diagnostics/tests/enum/entries/redeclarationOfEnumEntriesNameWithIntrinsicOn.kt +++ b/compiler/testData/diagnostics/tests/enum/entries/redeclarationOfEnumEntriesNameWithIntrinsicOn.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +EnumEntries +// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries // WITH_STDLIB // FIR_DUMP 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 c6f9f4789fb..93feec612cf 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 @@ -11077,6 +11077,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferenceOn.kt"); } + @Test + @TestMetadata("conflictingPropertyEntriesAndReferencePrioritized.kt") + public void testConflictingPropertyEntriesAndReferencePrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/conflictingPropertyEntriesAndReferencePrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyAsExtensionClash.kt") public void testEntriesPropertyAsExtensionClash() throws Exception { @@ -11089,6 +11095,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyAsExtensionClashPrioritized.kt") + public void testEntriesPropertyAsExtensionClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyAsExtensionClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyImportedClash.kt") public void testEntriesPropertyImportedClash() throws Exception { @@ -11101,6 +11113,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyImportedClashPrioritized.kt") + public void testEntriesPropertyImportedClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyImportedClashPrioritized.kt"); + } + @Test @TestMetadata("entriesPropertyInCompanionClash.kt") public void testEntriesPropertyInCompanionClash() throws Exception { @@ -11125,6 +11143,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashOn.kt"); } + @Test + @TestMetadata("entriesPropertyWithJvmStaticClashPrioritized.kt") + public void testEntriesPropertyWithJvmStaticClashPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/entriesPropertyWithJvmStaticClashPrioritized.kt"); + } + @Test @TestMetadata("entriesUnsupported.kt") public void testEntriesUnsupported() throws Exception { @@ -11173,6 +11197,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesOn.kt"); } + @Test + @TestMetadata("nameShadowingOfExternallyDefinedEntriesPrioritized.kt") + public void testNameShadowingOfExternallyDefinedEntriesPrioritized() throws Exception { + runTest("compiler/testData/diagnostics/tests/enum/entries/nameShadowingOfExternallyDefinedEntriesPrioritized.kt"); + } + @Test @TestMetadata("redeclarationOfEnumEntriesNameWithIntrinsic.kt") public void testRedeclarationOfEnumEntriesNameWithIntrinsic() throws Exception { diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt index e51216c6792..ea88077c78b 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt @@ -297,6 +297,7 @@ enum class LanguageFeature( ReferencesToSyntheticJavaProperties(KOTLIN_2_1), // KT-8575 ProhibitImplementingVarByInheritedVal(KOTLIN_2_1, kind = BUG_FIX), // KT-56779 + PrioritizedEnumEntries(KOTLIN_2_1, kind = UNSTABLE_FEATURE), // KT-xxxxx // End of 2.* language features --------------------------------------------------