K2: introduce FirEnumEntriesRedeclarationChecker (KT-59344)
This commit is contained in:
committed by
Space Team
parent
d028f9ec95
commit
e0d68fc93e
+5
@@ -188,4 +188,9 @@ object CommonDeclarationCheckers : DeclarationCheckers() {
|
|||||||
get() = setOf(
|
get() = setOf(
|
||||||
FirValueParameterDefaultValueTypeMismatchChecker,
|
FirValueParameterDefaultValueTypeMismatchChecker,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
override val enumEntryCheckers: Set<FirEnumEntryChecker>
|
||||||
|
get() = setOf(
|
||||||
|
FirEnumEntriesRedeclarationChecker,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.analysis.checkers.declaration
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.builtins.StandardNames
|
||||||
|
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||||
|
import org.jetbrains.kotlin.diagnostics.reportOn
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirEnumEntry
|
||||||
|
|
||||||
|
object FirEnumEntriesRedeclarationChecker : FirEnumEntryChecker() {
|
||||||
|
override fun check(declaration: FirEnumEntry, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
|
if (declaration.name == StandardNames.ENUM_ENTRIES) {
|
||||||
|
reporter.reportOn(declaration.source, FirErrors.DEPRECATED_DECLARATION_OF_ENUM_ENTRY, context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
|
||||||
// WITH_STDLIB
|
|
||||||
// FIR_DUMP
|
|
||||||
|
|
||||||
enum class Ambiguous {
|
|
||||||
first, entries;
|
|
||||||
}
|
|
||||||
|
|
||||||
val e = Ambiguous.entries.ordinal
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
FILE: enumEntriesAmbiguity.fir.kt
|
FILE: enumEntriesAmbiguity.kt
|
||||||
public final enum class Ambiguous : R|kotlin/Enum<Ambiguous>| {
|
public final enum class Ambiguous : R|kotlin/Enum<Ambiguous>| {
|
||||||
private constructor(): R|Ambiguous| {
|
private constructor(): R|Ambiguous| {
|
||||||
super<R|kotlin/Enum<Ambiguous>|>()
|
super<R|kotlin/Enum<Ambiguous>|>()
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FIR_DUMP
|
// FIR_DUMP
|
||||||
|
|||||||
Vendored
-11
@@ -1,11 +0,0 @@
|
|||||||
// !LANGUAGE: -EnumEntries
|
|
||||||
// WITH_STDLIB
|
|
||||||
|
|
||||||
enum class E {
|
|
||||||
entries, Entries;
|
|
||||||
|
|
||||||
fun foo() {
|
|
||||||
entries
|
|
||||||
E.entries
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Vendored
+1
@@ -1,3 +1,4 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
// !LANGUAGE: -EnumEntries
|
// !LANGUAGE: -EnumEntries
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
|||||||
-12
@@ -1,12 +0,0 @@
|
|||||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
|
||||||
// WITH_STDLIB
|
|
||||||
// FIR_DUMP
|
|
||||||
|
|
||||||
enum class E {
|
|
||||||
entries, Entries;
|
|
||||||
|
|
||||||
fun foo() {
|
|
||||||
entries.ordinal
|
|
||||||
E.entries.ordinal
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
FILE: redeclarationOfEnumEntriesNameWithIntrinsicOn.fir.kt
|
FILE: redeclarationOfEnumEntriesNameWithIntrinsicOn.kt
|
||||||
public final enum class E : R|kotlin/Enum<E>| {
|
public final enum class E : R|kotlin/Enum<E>| {
|
||||||
private constructor(): R|E| {
|
private constructor(): R|E| {
|
||||||
super<R|kotlin/Enum<E>|>()
|
super<R|kotlin/Enum<E>|>()
|
||||||
|
|||||||
Vendored
+1
@@ -1,3 +1,4 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FIR_DUMP
|
// FIR_DUMP
|
||||||
|
|||||||
Reference in New Issue
Block a user