diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirCommonSessionFactory.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirCommonSessionFactory.kt index 051475765b0..8429bb69c0a 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirCommonSessionFactory.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/LLFirCommonSessionFactory.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.FirVisibilityChecker import org.jetbrains.kotlin.fir.SessionConfiguration import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper import org.jetbrains.kotlin.fir.analysis.jvm.FirJvmOverridesBackwardCompatibilityHelper +import org.jetbrains.kotlin.fir.backend.jvm.FirJvmTypeMapper import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider import org.jetbrains.kotlin.fir.java.deserialization.OptionalAnnotationClassesProvider import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory @@ -27,6 +28,8 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper import org.jetbrains.kotlin.fir.session.DefaultCallConflictResolverFactory +import org.jetbrains.kotlin.platform.has +import org.jetbrains.kotlin.platform.jvm.JvmPlatform import org.jetbrains.kotlin.utils.addIfNotNull @OptIn(SessionConfiguration::class) @@ -45,6 +48,8 @@ internal class LLFirCommonSessionFactory(project: Project) : LLFirAbstractSessio context.dependencyProvider, ) ) + + registerPlatformSpecificComponentsIfAny(module) } } @@ -62,12 +67,15 @@ internal class LLFirCommonSessionFactory(project: Project) : LLFirAbstractSessio context.dependencyProvider, ) ) + + registerPlatformSpecificComponentsIfAny(module) } } override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession { return doCreateBinaryLibrarySession(module) { registerModuleIndependentCommonComponents() + registerPlatformSpecificComponentsIfAny(module) } } @@ -102,4 +110,9 @@ internal class LLFirCommonSessionFactory(project: Project) : LLFirAbstractSessio register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default) register(FirOverridesBackwardCompatibilityHelper::class, FirJvmOverridesBackwardCompatibilityHelper) } + + private fun LLFirSession.registerPlatformSpecificComponentsIfAny(module: KtModule) { + if (module.platform.has()) + register(FirJvmTypeMapper::class, FirJvmTypeMapper(this)) + } }