From 80832ddae1d0cd8065c75d455ab82adf9019cd43 Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Wed, 4 Oct 2023 18:55:53 +0300 Subject: [PATCH] [K2, JS] Don't fail on missing JS module kind service in IDE There's no module kind check for IDE at the moment: IDE modules don't have access to compiler arguments or configuration. K1 currently doesn't report the diagnostic either. See KTIJ-27279 for more details. This commit repeats K1 behaviour: K2 IDE won't fail because of the missing service, but the diagnostic won't be reported in IDE, only during compilation. KT-61615 --- .../fir/analysis/js/checkers/FirJsModuleCheckUtils.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/FirJsModuleCheckUtils.kt b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/FirJsModuleCheckUtils.kt index 61ead153383..1877aaf2d36 100644 --- a/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/FirJsModuleCheckUtils.kt +++ b/compiler/fir/checkers/checkers.js/src/org/jetbrains/kotlin/fir/analysis/js/checkers/FirJsModuleCheckUtils.kt @@ -22,11 +22,10 @@ import org.jetbrains.kotlin.serialization.js.ModuleKind @NoMutableState class FirJsModuleKind(val moduleKind: ModuleKind) : FirSessionComponent -private val FirSession.jsModuleKindComponent: FirJsModuleKind by FirSession.sessionComponentAccessor() - -private val FirSession.jsModuleKind: ModuleKind - get() = jsModuleKindComponent.moduleKind +private val FirSession.jsModuleKindComponent: FirJsModuleKind? by FirSession.nullableSessionComponentAccessor() +private val FirSession.jsModuleKind: ModuleKind? + get() = jsModuleKindComponent?.moduleKind internal fun checkJsModuleUsage( callee: FirBasedSymbol<*>, @@ -34,7 +33,7 @@ internal fun checkJsModuleUsage( reporter: DiagnosticReporter, source: AbstractKtSourceElement? ) { - val moduleKind = context.session.jsModuleKind + val moduleKind = context.session.jsModuleKind ?: return val calleeSession = callee.moduleData.session val calleeRoot = getRootClassLikeSymbolOrSelf(callee, calleeSession)