From a9207a8396d7b84434190b2ee40db04f0629355a Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Wed, 28 Jun 2023 12:05:08 +0300 Subject: [PATCH] [FIR] Remove the TODO in FirJvmAnnotationHelper.kt This code should not be reachable when not in JVM. `jvmDefaultModeState` is only accessed from the JVM checkers. --- .../fir/analysis/jvm/checkers/FirJvmAnnotationHelper.kt | 7 ++----- .../jvm/checkers/declaration/FirJvmDefaultChecker.kt | 2 +- .../jetbrains/kotlin/fir/java/JvmDefaultModeContainer.kt | 6 +++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/FirJvmAnnotationHelper.kt b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/FirJvmAnnotationHelper.kt index 6d27e23320d..1a490860edf 100644 --- a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/FirJvmAnnotationHelper.kt +++ b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/FirJvmAnnotationHelper.kt @@ -15,12 +15,9 @@ import org.jetbrains.kotlin.name.StandardClassIds fun FirBasedSymbol.isCompiledToJvmDefault( session: FirSession, - jvmDefaultMode: JvmDefaultMode? + jvmDefaultMode: JvmDefaultMode ): Boolean where D : FirAnnotationContainer, D : FirDeclaration { if (getAnnotationByClassId(StandardClassIds.Annotations.JvmDefault, session) != null) return true - - // jvmDefaultMode is null only on common metadata compilation - // TODO: it's unclear what should be returned here if jvmDefaultMode is null, KT-57079 - return jvmDefaultMode?.forAllMethodsWithBody ?: true + return jvmDefaultMode.forAllMethodsWithBody } diff --git a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmDefaultChecker.kt b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmDefaultChecker.kt index 205e1cf8ab2..212f5985a64 100644 --- a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmDefaultChecker.kt +++ b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmDefaultChecker.kt @@ -26,7 +26,7 @@ object FirJvmDefaultChecker : FirBasicDeclarationChecker() { val annotationNoCompatibility = declaration.getAnnotationByClassId(JVM_DEFAULT_NO_COMPATIBILITY_CLASS_ID, session) if (annotationNoCompatibility != null) { val source = annotationNoCompatibility.source - if (jvmDefaultMode?.isEnabled != true) { + if (!jvmDefaultMode.isEnabled) { reporter.reportOn(source, FirJvmErrors.JVM_DEFAULT_IN_DECLARATION, "JvmDefaultWithoutCompatibility", context) return } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JvmDefaultModeContainer.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JvmDefaultModeContainer.kt index d131d368e72..5975a3010ac 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JvmDefaultModeContainer.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JvmDefaultModeContainer.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.FirSessionComponent class FirJvmDefaultModeComponent(val jvmDefaultMode: JvmDefaultMode) : FirSessionComponent -private val FirSession.jvmDefaultModeComponent: FirJvmDefaultModeComponent? by FirSession.nullableSessionComponentAccessor() +private val FirSession.jvmDefaultModeComponent: FirJvmDefaultModeComponent by FirSession.sessionComponentAccessor() -val FirSession.jvmDefaultModeState: JvmDefaultMode? - get() = jvmDefaultModeComponent?.jvmDefaultMode +val FirSession.jvmDefaultModeState: JvmDefaultMode + get() = jvmDefaultModeComponent.jvmDefaultMode