From 8f9b6a08fcf545457be856eb98c5dc1047e8e1df Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Mon, 30 Oct 2023 14:07:41 +0100 Subject: [PATCH] [FIR] Cleanup ACTUAL_MISSING reporting The cleanup became possible after KT-62590 Review: https://jetbrains.team/p/kt/reviews/12750/timeline `matchingCompatibilityToMembersMap.allMismatches()` is equivalent to `ExpectActualMatchingCompatibility.MatchedSuccessfully !in matchingCompatibilityToMembersMap` --- .../FirExpectActualDeclarationChecker.kt | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExpectActualDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExpectActualDeclarationChecker.kt index 003601cdb42..aa7a1872e53 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExpectActualDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExpectActualDeclarationChecker.kt @@ -145,14 +145,10 @@ object FirExpectActualDeclarationChecker : FirBasicDeclarationChecker() { val source = declaration.source if (!declaration.isActual) { - if (matchingCompatibilityToMembersMap.allMismatches()) return - - if (ExpectActualMatchingCompatibility.MatchedSuccessfully in matchingCompatibilityToMembersMap) { - if (checkActual) { - reporter.reportOn(source, FirErrors.ACTUAL_MISSING, context) - } - return + if (checkActual && ExpectActualMatchingCompatibility.MatchedSuccessfully in matchingCompatibilityToMembersMap) { + reporter.reportOn(source, FirErrors.ACTUAL_MISSING, context) } + return } when { @@ -297,10 +293,6 @@ object FirExpectActualDeclarationChecker : FirBasicDeclarationChecker() { ) } - fun Map, *>.allMismatches(): Boolean { - return keys.all { it is ExpectActualMatchingCompatibility.Mismatch } - } - // we don't require `actual` modifier on // - annotation constructors, because annotation classes can only have one constructor // - value class primary constructors, because value class must have primary constructor