[FIR] Register type related extensions in libraries sessions
^KT-57140
This commit is contained in:
committed by
Space Team
parent
01fc84ee3a
commit
8ca7b32577
+13
-6
@@ -88,18 +88,21 @@ open class FirFrontendFacade(
|
||||
|
||||
val (moduleDataMap, moduleDataProvider) = initializeModuleData(sortedModules)
|
||||
|
||||
val project = testServices.compilerConfigurationProvider.getProject(module)
|
||||
val extensionRegistrars = FirExtensionRegistrar.getInstances(project)
|
||||
val projectEnvironment = createLibrarySession(
|
||||
module,
|
||||
testServices.compilerConfigurationProvider.getProject(module),
|
||||
project,
|
||||
Name.special("<${module.name}>"),
|
||||
testServices.firModuleInfoProvider.firSessionProvider,
|
||||
moduleDataProvider,
|
||||
testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
|
||||
testServices.compilerConfigurationProvider.getCompilerConfiguration(module),
|
||||
extensionRegistrars
|
||||
)
|
||||
|
||||
val targetPlatform = module.targetPlatform
|
||||
val firOutputPartForDependsOnModules = sortedModules.map {
|
||||
analyze(it, moduleDataMap[it]!!, targetPlatform, projectEnvironment)
|
||||
analyze(it, moduleDataMap[it]!!, targetPlatform, projectEnvironment, extensionRegistrars)
|
||||
}
|
||||
|
||||
return FirOutputArtifactImpl(firOutputPartForDependsOnModules)
|
||||
@@ -182,7 +185,8 @@ open class FirFrontendFacade(
|
||||
moduleName: Name,
|
||||
sessionProvider: FirProjectSessionProvider,
|
||||
moduleDataProvider: ModuleDataProvider,
|
||||
configuration: CompilerConfiguration
|
||||
configuration: CompilerConfiguration,
|
||||
extensionRegistrars: List<FirExtensionRegistrar>
|
||||
): AbstractProjectEnvironment? {
|
||||
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
||||
val projectEnvironment: AbstractProjectEnvironment?
|
||||
@@ -202,6 +206,7 @@ open class FirFrontendFacade(
|
||||
sessionProvider,
|
||||
moduleDataProvider,
|
||||
projectEnvironment,
|
||||
extensionRegistrars,
|
||||
projectFileSearchScope,
|
||||
packagePartProvider,
|
||||
languageVersionSettings,
|
||||
@@ -217,6 +222,7 @@ open class FirFrontendFacade(
|
||||
module,
|
||||
testServices,
|
||||
configuration,
|
||||
extensionRegistrars,
|
||||
languageVersionSettings,
|
||||
registerExtraComponents = ::registerExtraComponents,
|
||||
)
|
||||
@@ -228,6 +234,7 @@ open class FirFrontendFacade(
|
||||
listOf(),
|
||||
sessionProvider,
|
||||
moduleDataProvider,
|
||||
extensionRegistrars,
|
||||
languageVersionSettings,
|
||||
registerExtraComponents = ::registerExtraComponents,
|
||||
)
|
||||
@@ -241,7 +248,8 @@ open class FirFrontendFacade(
|
||||
module: TestModule,
|
||||
moduleData: FirModuleData,
|
||||
targetPlatform: TargetPlatform,
|
||||
projectEnvironment: AbstractProjectEnvironment?
|
||||
projectEnvironment: AbstractProjectEnvironment?,
|
||||
extensionRegistrars: List<FirExtensionRegistrar>,
|
||||
): FirOutputPartForDependsOnModule {
|
||||
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
||||
val moduleInfoProvider = testServices.firModuleInfoProvider
|
||||
@@ -258,7 +266,6 @@ open class FirFrontendFacade(
|
||||
FirParser.Psi -> testServices.sourceFileProvider.getKtFilesForSourceFiles(module.files, project).values to emptyList()
|
||||
}
|
||||
|
||||
val extensionRegistrars = FirExtensionRegistrar.getInstances(project)
|
||||
val sessionConfigurator: FirSessionConfigurator.() -> Unit = {
|
||||
if (FirDiagnosticsDirectives.WITH_EXTENDED_CHECKERS in module.directives) {
|
||||
registerExtendedCommonCheckers()
|
||||
|
||||
+2
@@ -33,6 +33,7 @@ object TestFirJsSessionFactory {
|
||||
module: TestModule,
|
||||
testServices: TestServices,
|
||||
configuration: CompilerConfiguration,
|
||||
extensionRegistrars: List<FirExtensionRegistrar>,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
registerExtraComponents: ((FirSession) -> Unit),
|
||||
): FirSession {
|
||||
@@ -45,6 +46,7 @@ object TestFirJsSessionFactory {
|
||||
resolvedLibraries.map { it.library },
|
||||
sessionProvider,
|
||||
moduleDataProvider,
|
||||
extensionRegistrars,
|
||||
languageVersionSettings,
|
||||
registerExtraComponents,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user