[FIR] Use KlibBasedSymbolProvider in FirCommonSessionFactory

Unify logic of KLib resolving (Common and JS)

^KT-56354 Fixed
This commit is contained in:
Ivan Kochurkin
2023-03-01 14:20:49 +01:00
committed by Space Team
parent d829f8b684
commit de5b475f7a
17 changed files with 163 additions and 74 deletions
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.analyzer.common.CommonDependenciesContainer
import org.jetbrains.kotlin.analyzer.common.CommonPlatformAnalyzerServices
import org.jetbrains.kotlin.analyzer.common.CommonResolverForModuleFactory
import org.jetbrains.kotlin.backend.common.CommonJsKLibResolver
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
@@ -69,7 +70,6 @@ import org.jetbrains.kotlin.storage.LockBasedStorageManager
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives
import org.jetbrains.kotlin.test.directives.MultiplatformDiagnosticsDirectives.ENABLE_MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE
import org.jetbrains.kotlin.test.model.DependencyRelation
import org.jetbrains.kotlin.test.model.FrontendFacade
import org.jetbrains.kotlin.test.model.FrontendKinds
@@ -274,7 +274,7 @@ class ClassicFrontendFacade(
}
private fun loadKlib(names: List<String>, configuration: CompilerConfiguration): List<ModuleDescriptor> {
val resolvedLibraries = jsResolveLibraries(
val resolvedLibraries = CommonJsKLibResolver.resolve(
names,
configuration.resolverLogger
).getFullResolvedList()
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.test.frontend.fir
import org.jetbrains.kotlin.backend.common.CommonJsKLibResolver
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.fir.FirModuleData
@@ -15,9 +16,7 @@ import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
import org.jetbrains.kotlin.fir.session.FirJsSessionFactory
import org.jetbrains.kotlin.fir.session.FirSessionConfigurator
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.ir.backend.js.jsResolveLibraries
import org.jetbrains.kotlin.ir.backend.js.resolverLogger
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.test.model.DependencyRelation
@@ -39,7 +38,7 @@ object TestFirJsSessionFactory {
): FirSession {
val logger = configuration.resolverLogger
val libraries = getAllJsDependenciesPaths(module, testServices)
val resolvedLibraries = jsResolveLibraries(libraries, logger).getFullResolvedList()
val resolvedLibraries = CommonJsKLibResolver.resolve(libraries, logger).getFullResolvedList()
return FirJsSessionFactory.createLibrarySession(
mainModuleName,
@@ -75,7 +74,7 @@ fun resolveJsLibraries(
): List<KotlinResolvedLibrary> {
val paths = getAllJsDependenciesPaths(module, testServices)
val logger = configuration.resolverLogger
return jsResolveLibraries(paths, logger).getFullResolvedList()
return CommonJsKLibResolver.resolve(paths, logger).getFullResolvedList()
}
fun getAllJsDependenciesPaths(module: TestModule, testServices: TestServices): List<String> {