[FIR] Register necessary resolve components for library session for all backends
^KT-61876 Fixed
This commit is contained in:
committed by
Space Team
parent
1c6af76f61
commit
1026cdf035
+2
-6
@@ -33,13 +33,9 @@ import org.jetbrains.kotlin.fir.resolve.providers.impl.FirExtensionSyntheticFunc
|
||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirDummyCompilerLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.session.registerCommonComponents
|
||||
import org.jetbrains.kotlin.fir.session.registerCommonComponentsAfterExtensionsAreConfigured
|
||||
import org.jetbrains.kotlin.fir.session.registerCommonJavaComponents
|
||||
import org.jetbrains.kotlin.fir.session.registerModuleData
|
||||
import org.jetbrains.kotlin.fir.session.*
|
||||
import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||
import org.jetbrains.kotlin.js.resolve.JsPlatformAnalyzerServices
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.platform.isCommon
|
||||
@@ -90,7 +86,7 @@ class LLFirBuiltinsSessionFactory(private val project: Project) {
|
||||
register(FirLazyDeclarationResolver::class, FirDummyCompilerLazyDeclarationResolver)
|
||||
registerCommonComponents(LanguageVersionSettingsImpl.DEFAULT/*TODO*/)
|
||||
registerCommonComponentsAfterExtensionsAreConfigured()
|
||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerModuleData(moduleData)
|
||||
|
||||
val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
|
||||
|
||||
+2
-5
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.analysis.providers.impl.util.mergeInto
|
||||
import org.jetbrains.kotlin.analysis.utils.errors.withKtModuleEntry
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||
import org.jetbrains.kotlin.fir.SessionConfiguration
|
||||
@@ -113,9 +112,8 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje
|
||||
registerIdeComponents(project)
|
||||
registerCommonComponents(languageVersionSettings)
|
||||
registerCommonComponentsAfterExtensionsAreConfigured()
|
||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerResolveComponents()
|
||||
registerJavaSpecificResolveComponents()
|
||||
|
||||
val provider = LLFirProvider(
|
||||
this,
|
||||
@@ -195,9 +193,8 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje
|
||||
registerIdeComponents(project)
|
||||
registerCommonComponents(languageVersionSettings)
|
||||
registerCommonComponentsAfterExtensionsAreConfigured()
|
||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerResolveComponents()
|
||||
registerJavaSpecificResolveComponents()
|
||||
|
||||
val ktFile = module.file as? KtFile
|
||||
|
||||
|
||||
+4
-7
@@ -14,18 +14,15 @@ import org.jetbrains.kotlin.analysis.project.structure.KtBinaryModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||
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.checkers.FirPlatformDiagnosticSuppressor
|
||||
import org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsPlatformDiagnosticSuppressor
|
||||
import org.jetbrains.kotlin.fir.analysis.jvm.FirJvmOverridesBackwardCompatibilityHelper
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeSpecificityComparatorProvider
|
||||
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
||||
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.FirSessionFactoryHelper.registerDefaultComponents
|
||||
import org.jetbrains.kotlin.fir.session.JsCallConflictResolverFactory
|
||||
import org.jetbrains.kotlin.fir.types.typeContext
|
||||
import org.jetbrains.kotlin.js.resolve.JsTypeSpecificityComparatorWithoutDelegate
|
||||
@@ -34,6 +31,7 @@ import org.jetbrains.kotlin.js.resolve.JsTypeSpecificityComparatorWithoutDelegat
|
||||
internal class LLFirJsSessionFactory(project: Project) : LLFirAbstractSessionFactory(project) {
|
||||
override fun createSourcesSession(module: KtSourceModule): LLFirSourcesSession {
|
||||
return doCreateSourcesSession(module) { context ->
|
||||
registerDefaultComponents()
|
||||
registerModuleIndependentJsComponents()
|
||||
|
||||
register(
|
||||
@@ -53,6 +51,7 @@ internal class LLFirJsSessionFactory(project: Project) : LLFirAbstractSessionFac
|
||||
|
||||
override fun createLibrarySession(module: KtModule): LLFirLibraryOrLibrarySourceResolvableModuleSession {
|
||||
return doCreateLibrarySession(module) { context ->
|
||||
registerDefaultComponents()
|
||||
registerModuleIndependentJsComponents()
|
||||
|
||||
register(
|
||||
@@ -70,6 +69,7 @@ internal class LLFirJsSessionFactory(project: Project) : LLFirAbstractSessionFac
|
||||
|
||||
override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession {
|
||||
return doCreateBinaryLibrarySession(module) {
|
||||
registerDefaultComponents()
|
||||
registerModuleIndependentJsComponents()
|
||||
}
|
||||
}
|
||||
@@ -88,14 +88,11 @@ internal class LLFirJsSessionFactory(project: Project) : LLFirAbstractSessionFac
|
||||
}
|
||||
|
||||
private fun LLFirSession.registerModuleIndependentJsComponents() {
|
||||
register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
|
||||
register(ConeCallConflictResolverFactory::class, JsCallConflictResolverFactory)
|
||||
register(
|
||||
FirTypeSpecificityComparatorProvider::class,
|
||||
FirTypeSpecificityComparatorProvider(JsTypeSpecificityComparatorWithoutDelegate(typeContext))
|
||||
)
|
||||
register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
|
||||
register(FirOverridesBackwardCompatibilityHelper::class, FirJvmOverridesBackwardCompatibilityHelper)
|
||||
register(FirPlatformDiagnosticSuppressor::class, FirJsPlatformDiagnosticSuppressor())
|
||||
}
|
||||
}
|
||||
|
||||
+3
-6
@@ -34,8 +34,7 @@ internal class LLFirJvmSessionFactory(project: Project) : LLFirAbstractSessionFa
|
||||
|
||||
override fun createSourcesSession(module: KtSourceModule): LLFirSourcesSession {
|
||||
return doCreateSourcesSession(module, FirKotlinScopeProvider(::wrapScopeWithJvmMapped)) { context ->
|
||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerJavaSpecificResolveComponents()
|
||||
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
val javaSymbolProvider = LLFirJavaSymbolProvider(this, context.moduleData, project, context.contentScope)
|
||||
register(JavaSymbolProvider::class, javaSymbolProvider)
|
||||
|
||||
@@ -59,8 +58,7 @@ internal class LLFirJvmSessionFactory(project: Project) : LLFirAbstractSessionFa
|
||||
|
||||
override fun createLibrarySession(module: KtModule): LLFirLibraryOrLibrarySourceResolvableModuleSession {
|
||||
return doCreateLibrarySession(module) { context ->
|
||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerJavaSpecificResolveComponents()
|
||||
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
val javaSymbolProvider = LLFirJavaSymbolProvider(this, context.moduleData, project, context.contentScope)
|
||||
register(
|
||||
FirSymbolProvider::class,
|
||||
@@ -81,8 +79,7 @@ internal class LLFirJvmSessionFactory(project: Project) : LLFirAbstractSessionFa
|
||||
|
||||
override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession {
|
||||
return doCreateBinaryLibrarySession(module) {
|
||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerJavaSpecificResolveComponents()
|
||||
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
|
||||
registerLibraryScopeAwareCallConflictResolverFactory()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user