From e9d5396fa979cb8feef560e0fabe36c07598fb56 Mon Sep 17 00:00:00 2001 From: Stanislav Ruban Date: Thu, 14 Mar 2024 11:59:40 +0200 Subject: [PATCH] [FIR][checkers] Handle ConeHiddenCandidateError in FirDestructuringDeclarationChecker properly #KT-66595 Fixed --- .../declaration/FirDestructuringDeclarationChecker.kt | 9 +++++++++ .../hiddenComponentInDestructuringDeclaration.fir.kt | 11 ----------- .../hiddenComponentInDestructuringDeclaration.kt | 3 +-- 3 files changed, 10 insertions(+), 13 deletions(-) delete mode 100644 compiler/testData/diagnostics/tests/deprecated/hiddenComponentInDestructuringDeclaration.fir.kt diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDestructuringDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDestructuringDeclarationChecker.kt index 3d171ec62af..4899657e409 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDestructuringDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDestructuringDeclarationChecker.kt @@ -124,6 +124,15 @@ object FirDestructuringDeclarationChecker : FirPropertyChecker(MppCheckerKind.Co context ) } + is ConeHiddenCandidateError -> { + reporter.reportOn( + source, + FirErrors.COMPONENT_FUNCTION_MISSING, + diagnostic.candidate.callInfo.name, + destructuringDeclarationType, + context + ) + } is ConeInapplicableWrongReceiver -> { reporter.reportOn( source, diff --git a/compiler/testData/diagnostics/tests/deprecated/hiddenComponentInDestructuringDeclaration.fir.kt b/compiler/testData/diagnostics/tests/deprecated/hiddenComponentInDestructuringDeclaration.fir.kt deleted file mode 100644 index a3bbbfae922..00000000000 --- a/compiler/testData/diagnostics/tests/deprecated/hiddenComponentInDestructuringDeclaration.fir.kt +++ /dev/null @@ -1,11 +0,0 @@ -// TARGET_FRONTEND: ClassicFrontend -// ^ reason for a FIR mute: KT-66595 - -class SimpleKlass { - @Deprecated("deprecated and hidden", level = DeprecationLevel.HIDDEN) - operator fun component1(): Int = 42 -} - -fun test(simpleKlass: SimpleKlass) { - val (s1) = simpleKlass -} diff --git a/compiler/testData/diagnostics/tests/deprecated/hiddenComponentInDestructuringDeclaration.kt b/compiler/testData/diagnostics/tests/deprecated/hiddenComponentInDestructuringDeclaration.kt index 7925663f8cf..efa89509305 100644 --- a/compiler/testData/diagnostics/tests/deprecated/hiddenComponentInDestructuringDeclaration.kt +++ b/compiler/testData/diagnostics/tests/deprecated/hiddenComponentInDestructuringDeclaration.kt @@ -1,5 +1,4 @@ -// TARGET_FRONTEND: ClassicFrontend -// ^ reason for a FIR mute: KT-66595 +// FIR_IDENTICAL class SimpleKlass { @Deprecated("deprecated and hidden", level = DeprecationLevel.HIDDEN)