[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.scopes.wrapScopeWithJvmMapped
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirDummyCompilerLazyDeclarationResolver
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirDummyCompilerLazyDeclarationResolver
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||||
import org.jetbrains.kotlin.fir.session.registerCommonComponents
|
import org.jetbrains.kotlin.fir.session.*
|
||||||
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.symbols.FirLazyDeclarationResolver
|
import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
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.name.ClassId
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
import org.jetbrains.kotlin.platform.isCommon
|
import org.jetbrains.kotlin.platform.isCommon
|
||||||
@@ -90,7 +86,7 @@ class LLFirBuiltinsSessionFactory(private val project: Project) {
|
|||||||
register(FirLazyDeclarationResolver::class, FirDummyCompilerLazyDeclarationResolver)
|
register(FirLazyDeclarationResolver::class, FirDummyCompilerLazyDeclarationResolver)
|
||||||
registerCommonComponents(LanguageVersionSettingsImpl.DEFAULT/*TODO*/)
|
registerCommonComponents(LanguageVersionSettingsImpl.DEFAULT/*TODO*/)
|
||||||
registerCommonComponentsAfterExtensionsAreConfigured()
|
registerCommonComponentsAfterExtensionsAreConfigured()
|
||||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||||
registerModuleData(moduleData)
|
registerModuleData(moduleData)
|
||||||
|
|
||||||
val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
|
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.analysis.utils.errors.withKtModuleEntry
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
|
||||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||||
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
|
||||||
import org.jetbrains.kotlin.fir.SessionConfiguration
|
import org.jetbrains.kotlin.fir.SessionConfiguration
|
||||||
@@ -113,9 +112,8 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje
|
|||||||
registerIdeComponents(project)
|
registerIdeComponents(project)
|
||||||
registerCommonComponents(languageVersionSettings)
|
registerCommonComponents(languageVersionSettings)
|
||||||
registerCommonComponentsAfterExtensionsAreConfigured()
|
registerCommonComponentsAfterExtensionsAreConfigured()
|
||||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||||
registerResolveComponents()
|
registerResolveComponents()
|
||||||
registerJavaSpecificResolveComponents()
|
|
||||||
|
|
||||||
val provider = LLFirProvider(
|
val provider = LLFirProvider(
|
||||||
this,
|
this,
|
||||||
@@ -195,9 +193,8 @@ internal abstract class LLFirAbstractSessionFactory(protected val project: Proje
|
|||||||
registerIdeComponents(project)
|
registerIdeComponents(project)
|
||||||
registerCommonComponents(languageVersionSettings)
|
registerCommonComponents(languageVersionSettings)
|
||||||
registerCommonComponentsAfterExtensionsAreConfigured()
|
registerCommonComponentsAfterExtensionsAreConfigured()
|
||||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||||
registerResolveComponents()
|
registerResolveComponents()
|
||||||
registerJavaSpecificResolveComponents()
|
|
||||||
|
|
||||||
val ktFile = module.file as? KtFile
|
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.KtModule
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||||
import org.jetbrains.kotlin.fir.BuiltinTypes
|
import org.jetbrains.kotlin.fir.BuiltinTypes
|
||||||
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.checkers.FirPlatformDiagnosticSuppressor
|
import org.jetbrains.kotlin.fir.analysis.checkers.FirPlatformDiagnosticSuppressor
|
||||||
import org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsPlatformDiagnosticSuppressor
|
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.declarations.FirTypeSpecificityComparatorProvider
|
||||||
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
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.session.FirSessionFactoryHelper.registerDefaultComponents
|
||||||
import org.jetbrains.kotlin.fir.session.JsCallConflictResolverFactory
|
import org.jetbrains.kotlin.fir.session.JsCallConflictResolverFactory
|
||||||
import org.jetbrains.kotlin.fir.types.typeContext
|
import org.jetbrains.kotlin.fir.types.typeContext
|
||||||
import org.jetbrains.kotlin.js.resolve.JsTypeSpecificityComparatorWithoutDelegate
|
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) {
|
internal class LLFirJsSessionFactory(project: Project) : LLFirAbstractSessionFactory(project) {
|
||||||
override fun createSourcesSession(module: KtSourceModule): LLFirSourcesSession {
|
override fun createSourcesSession(module: KtSourceModule): LLFirSourcesSession {
|
||||||
return doCreateSourcesSession(module) { context ->
|
return doCreateSourcesSession(module) { context ->
|
||||||
|
registerDefaultComponents()
|
||||||
registerModuleIndependentJsComponents()
|
registerModuleIndependentJsComponents()
|
||||||
|
|
||||||
register(
|
register(
|
||||||
@@ -53,6 +51,7 @@ internal class LLFirJsSessionFactory(project: Project) : LLFirAbstractSessionFac
|
|||||||
|
|
||||||
override fun createLibrarySession(module: KtModule): LLFirLibraryOrLibrarySourceResolvableModuleSession {
|
override fun createLibrarySession(module: KtModule): LLFirLibraryOrLibrarySourceResolvableModuleSession {
|
||||||
return doCreateLibrarySession(module) { context ->
|
return doCreateLibrarySession(module) { context ->
|
||||||
|
registerDefaultComponents()
|
||||||
registerModuleIndependentJsComponents()
|
registerModuleIndependentJsComponents()
|
||||||
|
|
||||||
register(
|
register(
|
||||||
@@ -70,6 +69,7 @@ internal class LLFirJsSessionFactory(project: Project) : LLFirAbstractSessionFac
|
|||||||
|
|
||||||
override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession {
|
override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession {
|
||||||
return doCreateBinaryLibrarySession(module) {
|
return doCreateBinaryLibrarySession(module) {
|
||||||
|
registerDefaultComponents()
|
||||||
registerModuleIndependentJsComponents()
|
registerModuleIndependentJsComponents()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -88,14 +88,11 @@ internal class LLFirJsSessionFactory(project: Project) : LLFirAbstractSessionFac
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun LLFirSession.registerModuleIndependentJsComponents() {
|
private fun LLFirSession.registerModuleIndependentJsComponents() {
|
||||||
register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
|
|
||||||
register(ConeCallConflictResolverFactory::class, JsCallConflictResolverFactory)
|
register(ConeCallConflictResolverFactory::class, JsCallConflictResolverFactory)
|
||||||
register(
|
register(
|
||||||
FirTypeSpecificityComparatorProvider::class,
|
FirTypeSpecificityComparatorProvider::class,
|
||||||
FirTypeSpecificityComparatorProvider(JsTypeSpecificityComparatorWithoutDelegate(typeContext))
|
FirTypeSpecificityComparatorProvider(JsTypeSpecificityComparatorWithoutDelegate(typeContext))
|
||||||
)
|
)
|
||||||
register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
|
|
||||||
register(FirOverridesBackwardCompatibilityHelper::class, FirJvmOverridesBackwardCompatibilityHelper)
|
|
||||||
register(FirPlatformDiagnosticSuppressor::class, FirJsPlatformDiagnosticSuppressor())
|
register(FirPlatformDiagnosticSuppressor::class, FirJsPlatformDiagnosticSuppressor())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-6
@@ -34,8 +34,7 @@ internal class LLFirJvmSessionFactory(project: Project) : LLFirAbstractSessionFa
|
|||||||
|
|
||||||
override fun createSourcesSession(module: KtSourceModule): LLFirSourcesSession {
|
override fun createSourcesSession(module: KtSourceModule): LLFirSourcesSession {
|
||||||
return doCreateSourcesSession(module, FirKotlinScopeProvider(::wrapScopeWithJvmMapped)) { context ->
|
return doCreateSourcesSession(module, FirKotlinScopeProvider(::wrapScopeWithJvmMapped)) { context ->
|
||||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||||
registerJavaSpecificResolveComponents()
|
|
||||||
val javaSymbolProvider = LLFirJavaSymbolProvider(this, context.moduleData, project, context.contentScope)
|
val javaSymbolProvider = LLFirJavaSymbolProvider(this, context.moduleData, project, context.contentScope)
|
||||||
register(JavaSymbolProvider::class, javaSymbolProvider)
|
register(JavaSymbolProvider::class, javaSymbolProvider)
|
||||||
|
|
||||||
@@ -59,8 +58,7 @@ internal class LLFirJvmSessionFactory(project: Project) : LLFirAbstractSessionFa
|
|||||||
|
|
||||||
override fun createLibrarySession(module: KtModule): LLFirLibraryOrLibrarySourceResolvableModuleSession {
|
override fun createLibrarySession(module: KtModule): LLFirLibraryOrLibrarySourceResolvableModuleSession {
|
||||||
return doCreateLibrarySession(module) { context ->
|
return doCreateLibrarySession(module) { context ->
|
||||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||||
registerJavaSpecificResolveComponents()
|
|
||||||
val javaSymbolProvider = LLFirJavaSymbolProvider(this, context.moduleData, project, context.contentScope)
|
val javaSymbolProvider = LLFirJavaSymbolProvider(this, context.moduleData, project, context.contentScope)
|
||||||
register(
|
register(
|
||||||
FirSymbolProvider::class,
|
FirSymbolProvider::class,
|
||||||
@@ -81,8 +79,7 @@ internal class LLFirJvmSessionFactory(project: Project) : LLFirAbstractSessionFa
|
|||||||
|
|
||||||
override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession {
|
override fun createBinaryLibrarySession(module: KtBinaryModule): LLFirLibrarySession {
|
||||||
return doCreateBinaryLibrarySession(module) {
|
return doCreateBinaryLibrarySession(module) {
|
||||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
registerJavaComponents(JavaModuleResolver.getInstance(project))
|
||||||
registerJavaSpecificResolveComponents()
|
|
||||||
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
|
register(FirJvmTypeMapper::class, FirJvmTypeMapper(this))
|
||||||
registerLibraryScopeAwareCallConflictResolverFactory()
|
registerLibraryScopeAwareCallConflictResolverFactory()
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-19
@@ -122,12 +122,15 @@ class FirSharableJavaComponents(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(SessionConfiguration::class)
|
@OptIn(SessionConfiguration::class)
|
||||||
fun FirSession.registerCommonJavaComponents(
|
fun FirSession.registerJavaComponents(
|
||||||
javaModuleResolver: JavaModuleResolver,
|
javaModuleResolver: JavaModuleResolver,
|
||||||
predefinedComponents: FirSharableJavaComponents? = null,
|
predefinedComponents: FirSharableJavaComponents? = null,
|
||||||
) {
|
) {
|
||||||
val jsr305State = languageVersionSettings.getFlag(JvmAnalysisFlags.javaTypeEnhancementState)
|
val jsr305State = languageVersionSettings.getFlag(JvmAnalysisFlags.javaTypeEnhancementState)
|
||||||
register(FirAnnotationTypeQualifierResolver::class, FirAnnotationTypeQualifierResolver(this, jsr305State, javaModuleResolver))
|
register(
|
||||||
|
FirAnnotationTypeQualifierResolver::class,
|
||||||
|
FirAnnotationTypeQualifierResolver(this, jsr305State, javaModuleResolver)
|
||||||
|
)
|
||||||
register(FirEnhancedSymbolsStorage::class, predefinedComponents?.enhancementStorage ?: FirEnhancedSymbolsStorage(this))
|
register(FirEnhancedSymbolsStorage::class, predefinedComponents?.enhancementStorage ?: FirEnhancedSymbolsStorage(this))
|
||||||
register(FirMappedSymbolStorage::class, predefinedComponents?.mappedStorage ?: FirMappedSymbolStorage(this))
|
register(FirMappedSymbolStorage::class, predefinedComponents?.mappedStorage ?: FirMappedSymbolStorage(this))
|
||||||
register(FirSyntheticPropertiesStorage::class, FirSyntheticPropertiesStorage(this))
|
register(FirSyntheticPropertiesStorage::class, FirSyntheticPropertiesStorage(this))
|
||||||
@@ -142,6 +145,17 @@ fun FirSession.registerCommonJavaComponents(
|
|||||||
register(CompilerRequiredAnnotationEnhancementProvider::class, JavaCompilerRequiredAnnotationEnhancementProvider)
|
register(CompilerRequiredAnnotationEnhancementProvider::class, JavaCompilerRequiredAnnotationEnhancementProvider)
|
||||||
register(FirAnnotationsPlatformSpecificSupportComponent::class, FirJvmAnnotationsPlatformSpecificSupportComponent)
|
register(FirAnnotationsPlatformSpecificSupportComponent::class, FirJvmAnnotationsPlatformSpecificSupportComponent)
|
||||||
register(FirPrimaryConstructorSuperTypeCheckerPlatformComponent::class, FirJvmPrimaryConstructorSuperTypeCheckerPlatformComponent)
|
register(FirPrimaryConstructorSuperTypeCheckerPlatformComponent::class, FirJvmPrimaryConstructorSuperTypeCheckerPlatformComponent)
|
||||||
|
|
||||||
|
register(FirVisibilityChecker::class, FirJavaVisibilityChecker)
|
||||||
|
register(ConeCallConflictResolverFactory::class, JvmCallConflictResolverFactory)
|
||||||
|
register(
|
||||||
|
FirTypeSpecificityComparatorProvider::class,
|
||||||
|
FirTypeSpecificityComparatorProvider(JvmTypeSpecificityComparator(typeContext))
|
||||||
|
)
|
||||||
|
register(FirPlatformClassMapper::class, FirJavaClassMapper(this))
|
||||||
|
register(FirSyntheticNamesProvider::class, FirJavaSyntheticNamesProvider)
|
||||||
|
register(FirOverridesBackwardCompatibilityHelper::class, FirJvmOverridesBackwardCompatibilityHelper)
|
||||||
|
register(FirInlineCheckerPlatformSpecificComponent::class, FirJvmInlineCheckerComponent())
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------- Resolve components --------------------------
|
// -------------------------- Resolve components --------------------------
|
||||||
@@ -181,23 +195,6 @@ fun FirSession.registerResolveComponents(lookupTracker: LookupTracker? = null, e
|
|||||||
register(FirExpectActualMatchingContextFactory::class, FirExpectActualMatchingContextImpl.Factory)
|
register(FirExpectActualMatchingContextFactory::class, FirExpectActualMatchingContextImpl.Factory)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Resolve components which have specific implementations on JVM
|
|
||||||
*/
|
|
||||||
@OptIn(SessionConfiguration::class)
|
|
||||||
fun FirSession.registerJavaSpecificResolveComponents() {
|
|
||||||
register(FirVisibilityChecker::class, FirJavaVisibilityChecker)
|
|
||||||
register(ConeCallConflictResolverFactory::class, JvmCallConflictResolverFactory)
|
|
||||||
register(
|
|
||||||
FirTypeSpecificityComparatorProvider::class,
|
|
||||||
FirTypeSpecificityComparatorProvider(JvmTypeSpecificityComparator(typeContext))
|
|
||||||
)
|
|
||||||
register(FirPlatformClassMapper::class, FirJavaClassMapper(this))
|
|
||||||
register(FirSyntheticNamesProvider::class, FirJavaSyntheticNamesProvider)
|
|
||||||
register(FirOverridesBackwardCompatibilityHelper::class, FirJvmOverridesBackwardCompatibilityHelper)
|
|
||||||
register(FirInlineCheckerPlatformSpecificComponent::class, FirJvmInlineCheckerComponent())
|
|
||||||
}
|
|
||||||
|
|
||||||
@OptIn(SessionConfiguration::class)
|
@OptIn(SessionConfiguration::class)
|
||||||
fun FirSession.registerModuleData(moduleData: FirModuleData) {
|
fun FirSession.registerModuleData(moduleData: FirModuleData) {
|
||||||
register(FirModuleData::class, moduleData)
|
register(FirModuleData::class, moduleData)
|
||||||
|
|||||||
+3
-11
@@ -9,20 +9,15 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
|
|||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.FirVisibilityChecker
|
|
||||||
import org.jetbrains.kotlin.fir.SessionConfiguration
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirDefaultOverridesBackwardCompatibilityHelper
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
|
||||||
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.session.FirSessionFactoryHelper.registerDefaultComponents
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||||
import org.jetbrains.kotlin.incremental.components.EnumWhenTracker
|
import org.jetbrains.kotlin.incremental.components.EnumWhenTracker
|
||||||
@@ -54,6 +49,7 @@ object FirCommonSessionFactory : FirAbstractSessionFactory() {
|
|||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
extensionRegistrars,
|
extensionRegistrars,
|
||||||
registerExtraComponents = {
|
registerExtraComponents = {
|
||||||
|
it.registerDefaultComponents()
|
||||||
registerExtraComponents(it)
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
createKotlinScopeProvider = { FirKotlinScopeProvider() },
|
createKotlinScopeProvider = { FirKotlinScopeProvider() },
|
||||||
@@ -82,7 +78,6 @@ object FirCommonSessionFactory : FirAbstractSessionFactory() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(SessionConfiguration::class)
|
|
||||||
fun createModuleBasedSession(
|
fun createModuleBasedSession(
|
||||||
moduleData: FirModuleData,
|
moduleData: FirModuleData,
|
||||||
sessionProvider: FirProjectSessionProvider,
|
sessionProvider: FirProjectSessionProvider,
|
||||||
@@ -106,10 +101,7 @@ object FirCommonSessionFactory : FirAbstractSessionFactory() {
|
|||||||
importTracker,
|
importTracker,
|
||||||
init,
|
init,
|
||||||
registerExtraComponents = {
|
registerExtraComponents = {
|
||||||
it.register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
|
it.registerDefaultComponents()
|
||||||
it.register(ConeCallConflictResolverFactory::class, DefaultCallConflictResolverFactory)
|
|
||||||
it.register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
|
|
||||||
it.register(FirOverridesBackwardCompatibilityHelper::class, FirDefaultOverridesBackwardCompatibilityHelper)
|
|
||||||
registerExtraComponents(it)
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
registerExtraCheckers = {},
|
registerExtraCheckers = {},
|
||||||
|
|||||||
+8
-12
@@ -9,10 +9,7 @@ import org.jetbrains.kotlin.config.CompilerConfiguration
|
|||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.FirVisibilityChecker
|
|
||||||
import org.jetbrains.kotlin.fir.SessionConfiguration
|
import org.jetbrains.kotlin.fir.SessionConfiguration
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirEmptyOverridesBackwardCompatibilityHelper
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.FirPlatformDiagnosticSuppressor
|
import org.jetbrains.kotlin.fir.analysis.checkers.FirPlatformDiagnosticSuppressor
|
||||||
import org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsModuleKind
|
import org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsModuleKind
|
||||||
import org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsPlatformDiagnosticSuppressor
|
import org.jetbrains.kotlin.fir.analysis.js.checkers.FirJsPlatformDiagnosticSuppressor
|
||||||
@@ -25,7 +22,7 @@ import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
|||||||
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSyntheticFunctionInterfaceProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSyntheticFunctionInterfaceProvider
|
||||||
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.session.FirSessionFactoryHelper.registerDefaultComponents
|
||||||
import org.jetbrains.kotlin.fir.types.typeContext
|
import org.jetbrains.kotlin.fir.types.typeContext
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||||
@@ -54,9 +51,10 @@ object FirJsSessionFactory : FirAbstractSessionFactory() {
|
|||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
init,
|
init,
|
||||||
registerExtraComponents = { session ->
|
registerExtraComponents = {
|
||||||
session.registerJsSpecificComponents(compilerConfiguration)
|
it.registerDefaultComponents()
|
||||||
registerExtraComponents(session)
|
it.registerJsComponents(compilerConfiguration)
|
||||||
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
registerExtraCheckers = { it.registerJsCheckers() },
|
registerExtraCheckers = { it.registerJsCheckers() },
|
||||||
createKotlinScopeProvider = { FirKotlinScopeProvider() },
|
createKotlinScopeProvider = { FirKotlinScopeProvider() },
|
||||||
@@ -93,7 +91,8 @@ object FirJsSessionFactory : FirAbstractSessionFactory() {
|
|||||||
compilerConfiguration.languageVersionSettings,
|
compilerConfiguration.languageVersionSettings,
|
||||||
extensionRegistrars,
|
extensionRegistrars,
|
||||||
registerExtraComponents = {
|
registerExtraComponents = {
|
||||||
it.registerJsSpecificComponents(compilerConfiguration)
|
it.registerDefaultComponents()
|
||||||
|
it.registerJsComponents(compilerConfiguration)
|
||||||
registerExtraComponents(it)
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
createKotlinScopeProvider = { FirKotlinScopeProvider() },
|
createKotlinScopeProvider = { FirKotlinScopeProvider() },
|
||||||
@@ -107,15 +106,12 @@ object FirJsSessionFactory : FirAbstractSessionFactory() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
@OptIn(SessionConfiguration::class)
|
@OptIn(SessionConfiguration::class)
|
||||||
fun FirSession.registerJsSpecificComponents(compilerConfiguration: CompilerConfiguration) {
|
private fun FirSession.registerJsComponents(compilerConfiguration: CompilerConfiguration) {
|
||||||
register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
|
|
||||||
register(ConeCallConflictResolverFactory::class, JsCallConflictResolverFactory)
|
register(ConeCallConflictResolverFactory::class, JsCallConflictResolverFactory)
|
||||||
register(
|
register(
|
||||||
FirTypeSpecificityComparatorProvider::class,
|
FirTypeSpecificityComparatorProvider::class,
|
||||||
FirTypeSpecificityComparatorProvider(JsTypeSpecificityComparatorWithoutDelegate(typeContext))
|
FirTypeSpecificityComparatorProvider(JsTypeSpecificityComparatorWithoutDelegate(typeContext))
|
||||||
)
|
)
|
||||||
register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
|
|
||||||
register(FirOverridesBackwardCompatibilityHelper::class, FirEmptyOverridesBackwardCompatibilityHelper)
|
|
||||||
register(FirPlatformDiagnosticSuppressor::class, FirJsPlatformDiagnosticSuppressor())
|
register(FirPlatformDiagnosticSuppressor::class, FirJsPlatformDiagnosticSuppressor())
|
||||||
|
|
||||||
val moduleKind = compilerConfiguration.get(JSConfigurationKeys.MODULE_KIND, ModuleKind.PLAIN)
|
val moduleKind = compilerConfiguration.get(JSConfigurationKeys.MODULE_KIND, ModuleKind.PLAIN)
|
||||||
|
|||||||
+5
-3
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSymbolProvider
|
|||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||||
|
import org.jetbrains.kotlin.fir.session.FirSessionFactoryHelper.registerDefaultComponents
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||||
import org.jetbrains.kotlin.incremental.components.EnumWhenTracker
|
import org.jetbrains.kotlin.incremental.components.EnumWhenTracker
|
||||||
@@ -51,7 +52,8 @@ object FirJvmSessionFactory : FirAbstractSessionFactory() {
|
|||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
extensionRegistrars,
|
extensionRegistrars,
|
||||||
registerExtraComponents = {
|
registerExtraComponents = {
|
||||||
it.registerCommonJavaComponents(projectEnvironment.getJavaModuleResolver(), predefinedJavaComponents)
|
it.registerDefaultComponents()
|
||||||
|
it.registerJavaComponents(projectEnvironment.getJavaModuleResolver(), predefinedJavaComponents)
|
||||||
registerExtraComponents(it)
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
createKotlinScopeProvider = { FirKotlinScopeProvider(::wrapScopeWithJvmMapped) },
|
createKotlinScopeProvider = { FirKotlinScopeProvider(::wrapScopeWithJvmMapped) },
|
||||||
@@ -106,8 +108,8 @@ object FirJvmSessionFactory : FirAbstractSessionFactory() {
|
|||||||
importTracker,
|
importTracker,
|
||||||
init,
|
init,
|
||||||
registerExtraComponents = {
|
registerExtraComponents = {
|
||||||
it.registerCommonJavaComponents(projectEnvironment.getJavaModuleResolver(), predefinedJavaComponents)
|
it.registerDefaultComponents()
|
||||||
it.registerJavaSpecificResolveComponents()
|
it.registerJavaComponents(projectEnvironment.getJavaModuleResolver(), predefinedJavaComponents)
|
||||||
registerExtraComponents(it)
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
registerExtraCheckers = { it.registerJvmCheckers() },
|
registerExtraCheckers = { it.registerJvmCheckers() },
|
||||||
|
|||||||
+6
-12
@@ -6,24 +6,22 @@
|
|||||||
package org.jetbrains.kotlin.fir.session
|
package org.jetbrains.kotlin.fir.session
|
||||||
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.BinaryModuleData
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirEmptyOverridesBackwardCompatibilityHelper
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.checkers.registerNativeCheckers
|
import org.jetbrains.kotlin.fir.checkers.registerNativeCheckers
|
||||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSyntheticFunctionInterfaceProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSyntheticFunctionInterfaceProvider
|
||||||
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.session.FirSessionFactoryHelper.registerDefaultComponents
|
||||||
import org.jetbrains.kotlin.library.isNativeStdlib
|
import org.jetbrains.kotlin.library.isNativeStdlib
|
||||||
import org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl.Companion.FORWARD_DECLARATIONS_MODULE_NAME
|
import org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl.Companion.FORWARD_DECLARATIONS_MODULE_NAME
|
||||||
import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary
|
import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
object FirNativeSessionFactory : FirAbstractSessionFactory() {
|
object FirNativeSessionFactory : FirAbstractSessionFactory() {
|
||||||
@OptIn(SessionConfiguration::class)
|
|
||||||
fun createLibrarySession(
|
fun createLibrarySession(
|
||||||
mainModuleName: Name,
|
mainModuleName: Name,
|
||||||
resolvedLibraries: List<KotlinResolvedLibrary>,
|
resolvedLibraries: List<KotlinResolvedLibrary>,
|
||||||
@@ -40,7 +38,7 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
|
|||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
extensionRegistrars,
|
extensionRegistrars,
|
||||||
registerExtraComponents = { session ->
|
registerExtraComponents = { session ->
|
||||||
session.register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
|
session.registerDefaultComponents()
|
||||||
registerExtraComponents(session)
|
registerExtraComponents(session)
|
||||||
},
|
},
|
||||||
createKotlinScopeProvider = { FirKotlinScopeProvider() },
|
createKotlinScopeProvider = { FirKotlinScopeProvider() },
|
||||||
@@ -66,7 +64,6 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(SessionConfiguration::class)
|
|
||||||
fun createModuleBasedSession(
|
fun createModuleBasedSession(
|
||||||
moduleData: FirModuleData,
|
moduleData: FirModuleData,
|
||||||
sessionProvider: FirProjectSessionProvider,
|
sessionProvider: FirProjectSessionProvider,
|
||||||
@@ -85,10 +82,7 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
|
|||||||
null,
|
null,
|
||||||
init,
|
init,
|
||||||
registerExtraComponents = {
|
registerExtraComponents = {
|
||||||
it.register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
|
it.registerDefaultComponents()
|
||||||
it.register(ConeCallConflictResolverFactory::class, DefaultCallConflictResolverFactory)
|
|
||||||
it.register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
|
|
||||||
it.register(FirOverridesBackwardCompatibilityHelper::class, FirEmptyOverridesBackwardCompatibilityHelper)
|
|
||||||
registerExtraComponents(it)
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
registerExtraCheckers = { it.registerNativeCheckers() },
|
registerExtraCheckers = { it.registerNativeCheckers() },
|
||||||
|
|||||||
+16
@@ -8,9 +8,13 @@ package org.jetbrains.kotlin.fir.session
|
|||||||
import org.jetbrains.annotations.TestOnly
|
import org.jetbrains.annotations.TestOnly
|
||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.FirEmptyOverridesBackwardCompatibilityHelper
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionService
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionService
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
||||||
|
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||||
import org.jetbrains.kotlin.incremental.components.EnumWhenTracker
|
import org.jetbrains.kotlin.incremental.components.EnumWhenTracker
|
||||||
@@ -123,4 +127,16 @@ object FirSessionFactoryHelper {
|
|||||||
register(FirExtensionService::class, FirExtensionService(this))
|
register(FirExtensionService::class, FirExtensionService(this))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers default components for [FirSession]
|
||||||
|
* They could be overridden by calling a function that registers specific platform components
|
||||||
|
*/
|
||||||
|
@OptIn(SessionConfiguration::class)
|
||||||
|
fun FirSession.registerDefaultComponents() {
|
||||||
|
register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
|
||||||
|
register(ConeCallConflictResolverFactory::class, DefaultCallConflictResolverFactory)
|
||||||
|
register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
|
||||||
|
register(FirOverridesBackwardCompatibilityHelper::class, FirEmptyOverridesBackwardCompatibilityHelper)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-18
@@ -9,19 +9,14 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
|
|||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.FirVisibilityChecker
|
|
||||||
import org.jetbrains.kotlin.fir.SessionConfiguration
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirEmptyOverridesBackwardCompatibilityHelper
|
|
||||||
import org.jetbrains.kotlin.fir.analysis.FirOverridesBackwardCompatibilityHelper
|
|
||||||
import org.jetbrains.kotlin.fir.checkers.registerWasmCheckers
|
import org.jetbrains.kotlin.fir.checkers.registerWasmCheckers
|
||||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.ConeCallConflictResolverFactory
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSyntheticFunctionInterfaceProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSyntheticFunctionInterfaceProvider
|
||||||
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.session.FirSessionFactoryHelper.registerDefaultComponents
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -46,9 +41,9 @@ object FirWasmSessionFactory : FirAbstractSessionFactory() {
|
|||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
init,
|
init,
|
||||||
registerExtraComponents = { session ->
|
registerExtraComponents = {
|
||||||
session.registerWasmSpecificComponents()
|
it.registerDefaultComponents()
|
||||||
registerExtraComponents(session)
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
registerExtraCheckers = { it.registerWasmCheckers() },
|
registerExtraCheckers = { it.registerWasmCheckers() },
|
||||||
createKotlinScopeProvider = { FirKotlinScopeProvider { _, declaredMemberScope, _, _, _ -> declaredMemberScope } },
|
createKotlinScopeProvider = { FirKotlinScopeProvider { _, declaredMemberScope, _, _, _ -> declaredMemberScope } },
|
||||||
@@ -85,7 +80,7 @@ object FirWasmSessionFactory : FirAbstractSessionFactory() {
|
|||||||
languageVersionSettings,
|
languageVersionSettings,
|
||||||
extensionRegistrars,
|
extensionRegistrars,
|
||||||
registerExtraComponents = {
|
registerExtraComponents = {
|
||||||
it.registerWasmSpecificComponents()
|
it.registerDefaultComponents()
|
||||||
registerExtraComponents(it)
|
registerExtraComponents(it)
|
||||||
},
|
},
|
||||||
createKotlinScopeProvider = { FirKotlinScopeProvider { _, declaredMemberScope, _, _, _ -> declaredMemberScope } },
|
createKotlinScopeProvider = { FirKotlinScopeProvider { _, declaredMemberScope, _, _, _ -> declaredMemberScope } },
|
||||||
@@ -97,12 +92,4 @@ object FirWasmSessionFactory : FirAbstractSessionFactory() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@OptIn(SessionConfiguration::class)
|
|
||||||
fun FirSession.registerWasmSpecificComponents() {
|
|
||||||
register(FirVisibilityChecker::class, FirVisibilityChecker.Default)
|
|
||||||
register(ConeCallConflictResolverFactory::class, DefaultCallConflictResolverFactory)
|
|
||||||
register(FirPlatformClassMapper::class, FirPlatformClassMapper.Default)
|
|
||||||
register(FirOverridesBackwardCompatibilityHelper::class, FirEmptyOverridesBackwardCompatibilityHelper)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user