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(
|
||||
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>| {
|
||||
private constructor(): R|Ambiguous| {
|
||||
super<R|kotlin/Enum<Ambiguous>|>()
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// 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
|
||||
// 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>| {
|
||||
private constructor(): R|E| {
|
||||
super<R|kotlin/Enum<E>|>()
|
||||
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// FIR_DUMP
|
||||
|
||||
Reference in New Issue
Block a user