[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.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<JvmPlatform>())
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
}
}