[LL] Register JvmTypeMapper for common modules with JVM platform

KT-60706
This commit is contained in:
Pavel Kirpichenkov
2023-07-26 18:49:27 +03:00
committed by Space Team
parent 0fb6382bd6
commit 6896684d36
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.FirVisibilityChecker
import org.jetbrains.kotlin.fir.SessionConfiguration import org.jetbrains.kotlin.fir.SessionConfiguration
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
import org.jetbrains.kotlin.fir.analysis.jvm.FirJvmOverridesBackwardCompatibilityHelper 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.deserialization.SingleModuleDataProvider
import org.jetbrains.kotlin.fir.java.deserialization.OptionalAnnotationClassesProvider import org.jetbrains.kotlin.fir.java.deserialization.OptionalAnnotationClassesProvider
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory 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.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
import org.jetbrains.kotlin.fir.session.DefaultCallConflictResolverFactory 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 import org.jetbrains.kotlin.utils.addIfNotNull
@OptIn(SessionConfiguration::class) @OptIn(SessionConfiguration::class)
@@ -45,6 +48,8 @@ internal class LLFirCommonSessionFactory(project: Project) : LLFirAbstractSessio
context.dependencyProvider, context.dependencyProvider,
) )
) )
registerPlatformSpecificComponentsIfAny(module)
} }
} }
@@ -62,12 +67,15 @@ internal class LLFirCommonSessionFactory(project: Project) : LLFirAbstractSessio
context.dependencyProvider, context.dependencyProvider,
) )
) )
registerPlatformSpecificComponentsIfAny(module)
} }
} }
override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession { override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession {
return doCreateBinaryLibrarySession(module) { return doCreateBinaryLibrarySession(module) {
registerModuleIndependentCommonComponents() registerModuleIndependentCommonComponents()
registerPlatformSpecificComponentsIfAny(module)
} }
} }
@@ -102,4 +110,9 @@ internal class LLFirCommonSessionFactory(project: Project) : LLFirAbstractSessio
register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default) register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
register(FirOverridesBackwardCompatibilityHelper::class, FirJvmOverridesBackwardCompatibilityHelper) register(FirOverridesBackwardCompatibilityHelper::class, FirJvmOverridesBackwardCompatibilityHelper)
} }
private fun LLFirSession.registerPlatformSpecificComponentsIfAny(module: KtModule) {
if (module.platform.has<JvmPlatform>())
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
}
} }