[JS] Rename JsLibraryProvider to LibraryProvider

This class is not JS-specific and can be used in Wasm test services
This commit is contained in:
Svyatoslav Kuzmich
2023-05-19 17:25:41 +02:00
parent 7eec1b350f
commit 736519c506
17 changed files with 30 additions and 33 deletions
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.test.services
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.library.KotlinLibrary
class JsLibraryProvider(private val testServices: TestServices) : TestService {
class LibraryProvider(private val testServices: TestServices) : TestService {
private val descriptorToLibrary = mutableMapOf<ModuleDescriptor, KotlinLibrary>()
private val stdlibPathToDescriptor = mutableMapOf<String, ModuleDescriptor>()
@@ -49,4 +49,4 @@ class JsLibraryProvider(private val testServices: TestServices) : TestService {
}
}
val TestServices.jsLibraryProvider: JsLibraryProvider by TestServices.testServiceAccessor()
val TestServices.libraryProvider: LibraryProvider by TestServices.testServiceAccessor()
@@ -42,7 +42,7 @@ class ClassicFrontend2IrConverter(
BackendKinds.IrBackend
) {
override val additionalServices: List<ServiceRegistrationData>
get() = listOf(service(::JsLibraryProvider))
get() = listOf(service(::LibraryProvider))
override fun transform(module: TestModule, inputArtifact: ClassicFrontendOutputArtifact): IrBackendInput {
return when (module.targetBackend) {
@@ -102,7 +102,7 @@ class ClassicFrontend2IrConverter(
IrFactoryImpl,
verifySignatures
) {
testServices.jsLibraryProvider.getDescriptorByCompiledLibrary(it)
testServices.libraryProvider.getDescriptorByCompiledLibrary(it)
}
val errorPolicy = configuration.get(JSConfigurationKeys.ERROR_TOLERANCE_POLICY) ?: ErrorTolerancePolicy.DEFAULT
@@ -282,7 +282,7 @@ class ClassicFrontendFacade(
val dependencies = mutableListOf<ModuleDescriptorImpl>()
return resolvedLibraries.map { resolvedLibrary ->
testServices.jsLibraryProvider.getOrCreateStdlibByPath(resolvedLibrary.library.libraryName) {
testServices.libraryProvider.getOrCreateStdlibByPath(resolvedLibrary.library.libraryName) {
val storageManager = LockBasedStorageManager("ModulesStructure")
val isBuiltIns = resolvedLibrary.library.unresolvedDependencies.isEmpty()
@@ -48,7 +48,7 @@ import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
import org.jetbrains.kotlin.test.services.jsLibraryProvider
import org.jetbrains.kotlin.test.services.libraryProvider
import org.jetbrains.kotlin.utils.metadataVersion
class Fir2IrJsResultsConverter(
@@ -204,7 +204,7 @@ private fun loadResolvedLibraries(
return resolvedLibraries.map { resolvedLibrary ->
// resolvedLibrary.library.libraryName in fact resolves to (modified) file path, which is confising and maybe should be refactored
testServices.jsLibraryProvider.getOrCreateStdlibByPath(resolvedLibrary.library.libraryName) {
testServices.libraryProvider.getOrCreateStdlibByPath(resolvedLibrary.library.libraryName) {
// TODO: check safety of the approach of creating a separate storage manager per library
val storageManager = LockBasedStorageManager("ModulesStructure")
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.test.frontend.fir.handlers.*
import org.jetbrains.kotlin.test.model.DependencyKind
import org.jetbrains.kotlin.test.model.FrontendFacade
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.services.JsLibraryProvider
import org.jetbrains.kotlin.test.services.LibraryProvider
import org.jetbrains.kotlin.test.services.TestService
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
@@ -106,7 +106,7 @@ abstract class AbstractFirWithActualizerDiagnosticsTest(val parser: FirParser) :
)
}
useAdditionalService(::JsLibraryProvider)
useAdditionalService(::LibraryProvider)
}
}
@@ -196,7 +196,7 @@ class JsEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfigu
fun getAllRecursiveLibrariesFor(module: TestModule, testServices: TestServices): Map<KotlinLibrary, ModuleDescriptorImpl> {
val dependencies = getAllRecursiveDependenciesFor(module, testServices)
return dependencies.associateBy { testServices.jsLibraryProvider.getCompiledLibraryByDescriptor(it) }
return dependencies.associateBy { testServices.libraryProvider.getCompiledLibraryByDescriptor(it) }
}
fun getAllDependenciesMappingFor(module: TestModule, testServices: TestServices): Map<KotlinLibrary, List<KotlinLibrary>> {
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.test.services.configuration
import org.jetbrains.kotlin.config.AnalysisFlag
import org.jetbrains.kotlin.config.AnalysisFlags.allowFullyQualifiedNameInKClass
import org.jetbrains.kotlin.config.AnalysisFlags.skipPrereleaseCheck
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.LanguageVersion
@@ -17,7 +16,6 @@ import org.jetbrains.kotlin.js.config.SourceMapSourceEmbedding
import org.jetbrains.kotlin.serialization.js.ModuleKind
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives.EXPECT_ACTUAL_LINKER
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives.GENERATE_INLINE_ANONYMOUS_FUNCTIONS
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives.NO_INLINE
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives.PROPERTY_LAZY_INITIALIZATION
import org.jetbrains.kotlin.test.directives.JsEnvironmentConfigurationDirectives.SOURCE_MAP_EMBED_SOURCES
@@ -122,7 +122,7 @@ class FirJsKlibBackendFacade(
if (JsEnvironmentConfigurator.incrementalEnabled(testServices)) {
testServices.jsIrIncrementalDataProvider.recordIncrementalData(module, lib)
}
testServices.jsLibraryProvider.setDescriptorAndLibraryByName(outputFile, moduleDescriptor, lib)
testServices.libraryProvider.setDescriptorAndLibraryByName(outputFile, moduleDescriptor, lib)
return BinaryArtifacts.KLib(File(outputFile))
}
@@ -44,7 +44,7 @@ import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator.Companion.getJsArtifactSimpleName
import org.jetbrains.kotlin.test.services.configuration.getDependencies
import org.jetbrains.kotlin.test.services.jsLibraryProvider
import org.jetbrains.kotlin.test.services.libraryProvider
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
import org.jetbrains.kotlin.utils.addToStdlib.runIf
import org.jetbrains.kotlin.utils.fileUtils.withReplacedExtensionOrNull
@@ -215,9 +215,9 @@ class JsIrBackendFacade(
val symbolTable = SymbolTable(IdSignatureDescriptor(JsManglerDesc), IrFactoryImplForJsIC(WholeWorldStageController()))
val moduleDescriptor = testServices.moduleDescriptorProvider.getModuleDescriptor(module)
val mainModuleLib = testServices.jsLibraryProvider.getCompiledLibraryByDescriptor(moduleDescriptor)
val mainModuleLib = testServices.libraryProvider.getCompiledLibraryByDescriptor(moduleDescriptor)
val friendLibraries = getDependencies(module, testServices, DependencyRelation.FriendDependency)
.map { testServices.jsLibraryProvider.getCompiledLibraryByDescriptor(it) }
.map { testServices.libraryProvider.getCompiledLibraryByDescriptor(it) }
val friendModules = mapOf(mainModuleLib.uniqueName to friendLibraries.map { it.uniqueName })
return getIrModuleInfoForKlib(
@@ -229,7 +229,7 @@ class JsIrBackendFacade(
symbolTable,
messageLogger,
loadFunctionInterfacesIntoStdlib = true,
) { if (it == mainModuleLib) moduleDescriptor else testServices.jsLibraryProvider.getDescriptorByCompiledLibrary(it) }
) { if (it == mainModuleLib) moduleDescriptor else testServices.libraryProvider.getDescriptorByCompiledLibrary(it) }
}
private fun BinaryArtifacts.Js.JsIrArtifact.dump(
@@ -69,7 +69,7 @@ class JsKlibBackendFacade(
val dependencies = JsEnvironmentConfigurator.getAllRecursiveDependenciesFor(module, testServices).toList()
val lib = CommonKLibResolver.resolve(
dependencies.map { testServices.jsLibraryProvider.getPathByDescriptor(it) } + listOf(outputFile),
dependencies.map { testServices.libraryProvider.getPathByDescriptor(it) } + listOf(outputFile),
configuration.resolverLogger
).getFullResolvedList().last().library
@@ -87,7 +87,7 @@ class JsKlibBackendFacade(
if (JsEnvironmentConfigurator.incrementalEnabled(testServices)) {
testServices.jsIrIncrementalDataProvider.recordIncrementalData(module, lib)
}
testServices.jsLibraryProvider.setDescriptorAndLibraryByName(outputFile, moduleDescriptor, lib)
testServices.libraryProvider.setDescriptorAndLibraryByName(outputFile, moduleDescriptor, lib)
return BinaryArtifacts.KLib(File(outputFile))
}
@@ -31,7 +31,7 @@ class RecompileModuleJsIrBackendFacade(
override fun TestServices.register(module: TestModule) {
register(ModuleDescriptorProvider::class, testServices.moduleDescriptorProvider)
register(JsLibraryProvider::class, testServices.jsLibraryProvider)
register(LibraryProvider::class, testServices.libraryProvider)
register(JsIrIncrementalDataProvider::class, testServices.jsIrIncrementalDataProvider)
}
}
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.test.model.DependencyKind
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
import org.jetbrains.kotlin.test.runners.configurationForClassicAndFirTestsAlongside
import org.jetbrains.kotlin.test.services.JsLibraryProvider
import org.jetbrains.kotlin.test.services.LibraryProvider
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider
@@ -52,7 +52,7 @@ abstract class AbstractFirJsDiagnosticTestBase(val parser: FirParser) : Abstract
::CoroutineHelpersSourceFilesProvider,
)
useAdditionalService(::JsLibraryProvider)
useAdditionalService(::LibraryProvider)
facadeStep(::FirFrontendFacade)
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.js.parser.sourcemaps.*
import org.jetbrains.kotlin.test.model.TestFile
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.jsLibraryProvider
import org.jetbrains.kotlin.test.services.libraryProvider
import org.jetbrains.kotlin.test.services.moduleStructure
import java.io.File
@@ -60,7 +60,7 @@ class JsSourceMapPathRewriter(testServices: TestServices) : AbstractJsArtifactsC
private fun tryToMapLibrarySourceFile(dependencies: Iterable<ModuleDescriptor>, sourceMapPath: String): String? {
for (dependency in dependencies) {
val libraryFile = try {
File(testServices.jsLibraryProvider.getPathByDescriptor(dependency))
File(testServices.libraryProvider.getPathByDescriptor(dependency))
} catch (e: NoSuchElementException) {
continue
}
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
import org.jetbrains.kotlin.test.model.*
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest
import org.jetbrains.kotlin.test.runners.codegen.commonClassicFrontendHandlersForCodegenTest
import org.jetbrains.kotlin.test.services.JsLibraryProvider
import org.jetbrains.kotlin.test.services.LibraryProvider
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider
@@ -136,7 +136,7 @@ fun <
::JsEnvironmentConfigurator,
)
useAdditionalService(::JsLibraryProvider)
useAdditionalService(::LibraryProvider)
useAfterAnalysisCheckers(
::JsFailingTestSuppressor,
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
import org.jetbrains.kotlin.test.model.*
import org.jetbrains.kotlin.test.runners.ir.AbstractIrTextTest
import org.jetbrains.kotlin.test.services.JsLibraryProvider
import org.jetbrains.kotlin.test.services.LibraryProvider
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
@@ -28,7 +28,7 @@ abstract class AbstractJsIrTextTestBase<FrontendOutput : ResultingArtifact.Front
::JsEnvironmentConfigurator,
)
useAdditionalService(::JsLibraryProvider)
useAdditionalService(::LibraryProvider)
}
}
@@ -78,8 +78,8 @@ class JsIrIncrementalDataProvider(private val testServices: TestServices) : Test
private fun recordIncrementalDataForRuntimeKlib(module: TestModule) {
val runtimeKlibPath = JsEnvironmentConfigurator.getRuntimePathsForModule(module, testServices)
val libs = runtimeKlibPath.map {
val descriptor = testServices.jsLibraryProvider.getDescriptorByPath(it)
testServices.jsLibraryProvider.getCompiledLibraryByDescriptor(descriptor)
val descriptor = testServices.libraryProvider.getDescriptorByPath(it)
testServices.libraryProvider.getCompiledLibraryByDescriptor(descriptor)
}
val configuration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
@@ -11,12 +11,11 @@ import org.jetbrains.kotlin.test.builders.classicFrontendHandlersStep
import org.jetbrains.kotlin.test.builders.classicFrontendStep
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives
import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler
import org.jetbrains.kotlin.test.frontend.classic.handlers.DeclarationsDumpHandler
import org.jetbrains.kotlin.test.frontend.classic.handlers.OldNewInferenceMetaInfoProcessor
import org.jetbrains.kotlin.test.model.DependencyKind
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
import org.jetbrains.kotlin.test.services.JsLibraryProvider
import org.jetbrains.kotlin.test.services.LibraryProvider
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.configuration.WasmEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider
@@ -46,7 +45,7 @@ abstract class AbstractDiagnosticsWasmTest : AbstractKotlinCompilerTest() {
::AdditionalDiagnosticsSourceFilesProvider,
::CoroutineHelpersSourceFilesProvider,
)
useAdditionalService(::JsLibraryProvider)
useAdditionalService(::LibraryProvider)
classicFrontendStep()
classicFrontendHandlersStep {