Refactoring: Clean-up usage of KlibMetadataFactories

This commit is contained in:
Dmitriy Dolovov
2020-03-26 21:52:50 +07:00
parent 36988cf15c
commit c23a11a6fc
5 changed files with 16 additions and 25 deletions
@@ -21,8 +21,8 @@ import org.jetbrains.kotlin.storage.StorageManager
/** /**
* The default Kotlin/Native factories. * The default Kotlin/Native factories.
*/ */
open class KlibMetadataFactories( class KlibMetadataFactories(
createBuiltIns:(StorageManager) -> KotlinBuiltIns, createBuiltIns: (StorageManager) -> KotlinBuiltIns,
val flexibleTypeDeserializer: FlexibleTypeDeserializer, val flexibleTypeDeserializer: FlexibleTypeDeserializer,
val platformDependentTypeTransformer: PlatformDependentTypeTransformer val platformDependentTypeTransformer: PlatformDependentTypeTransformer
) { ) {
@@ -87,7 +87,7 @@ class NativePlatformKindResolution : IdePlatformKindResolution {
object NativeBuiltInsCacheKey : BuiltInsCacheKey object NativeBuiltInsCacheKey : BuiltInsCacheKey
companion object { companion object {
private val NativeFactories = KlibMetadataFactories(::KonanBuiltIns, NullFlexibleTypeDeserializer) private val metadataFactories = KlibMetadataFactories(::KonanBuiltIns, NullFlexibleTypeDeserializer)
fun createNativeKlibPackageFragmentProvider( fun createNativeKlibPackageFragmentProvider(
moduleInfo: ModuleInfo, moduleInfo: ModuleInfo,
@@ -99,7 +99,7 @@ class NativePlatformKindResolution : IdePlatformKindResolution {
?.resolvedKotlinLibrary ?.resolvedKotlinLibrary
?.createKlibPackageFragmentProvider( ?.createKlibPackageFragmentProvider(
storageManager = storageManager, storageManager = storageManager,
metadataModuleDescriptorFactory = NativeFactories.DefaultDeserializedDescriptorFactory, metadataModuleDescriptorFactory = metadataFactories.DefaultDeserializedDescriptorFactory,
languageVersionSettings = languageVersionSettings, languageVersionSettings = languageVersionSettings,
moduleDescriptor = moduleDescriptor moduleDescriptor = moduleDescriptor
) )
@@ -111,7 +111,7 @@ class NativePlatformKindResolution : IdePlatformKindResolution {
val project = projectContext.project val project = projectContext.project
val storageManager = projectContext.storageManager val storageManager = projectContext.storageManager
val builtInsModule = NativeFactories.DefaultDescriptorFactory.createDescriptorAndNewBuiltIns( val builtInsModule = metadataFactories.DefaultDescriptorFactory.createDescriptorAndNewBuiltIns(
KotlinBuiltIns.BUILTINS_MODULE_NAME, KotlinBuiltIns.BUILTINS_MODULE_NAME,
storageManager, storageManager,
DeserializedKlibModuleOrigin(stdlibInfo.resolvedKotlinLibrary), DeserializedKlibModuleOrigin(stdlibInfo.resolvedKotlinLibrary),
@@ -136,7 +136,7 @@ class NativePlatformKindResolution : IdePlatformKindResolution {
listOf( listOf(
stdlibPackageFragmentProvider, stdlibPackageFragmentProvider,
functionInterfacePackageFragmentProvider(storageManager, builtInsModule), functionInterfacePackageFragmentProvider(storageManager, builtInsModule),
(NativeFactories.DefaultDeserializedDescriptorFactory as KlibMetadataModuleDescriptorFactoryImpl) (metadataFactories.DefaultDeserializedDescriptorFactory as KlibMetadataModuleDescriptorFactoryImpl)
.createForwardDeclarationHackPackagePartProvider(storageManager, builtInsModule) .createForwardDeclarationHackPackagePartProvider(storageManager, builtInsModule)
) )
) )
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.commonizer.BuiltInsProvider import org.jetbrains.kotlin.descriptors.commonizer.BuiltInsProvider
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider
import org.jetbrains.kotlin.descriptors.commonizer.utils.NativeFactories.DefaultDeserializedDescriptorFactory import org.jetbrains.kotlin.descriptors.commonizer.utils.NativeFactories
import org.jetbrains.kotlin.descriptors.commonizer.utils.createKotlinNativeForwardDeclarationsModule import org.jetbrains.kotlin.descriptors.commonizer.utils.createKotlinNativeForwardDeclarationsModule
import org.jetbrains.kotlin.konan.library.KONAN_STDLIB_NAME import org.jetbrains.kotlin.konan.library.KONAN_STDLIB_NAME
import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.storage.StorageManager
@@ -20,7 +20,7 @@ internal class NativeDistributionModulesProvider(
private val libraries: NativeDistributionLibraries private val libraries: NativeDistributionLibraries
) : BuiltInsProvider, ModulesProvider { ) : BuiltInsProvider, ModulesProvider {
override fun loadBuiltIns(): KotlinBuiltIns { override fun loadBuiltIns(): KotlinBuiltIns {
val stdlib = DefaultDeserializedDescriptorFactory.createDescriptorAndNewBuiltIns( val stdlib = NativeFactories.DefaultDeserializedDescriptorFactory.createDescriptorAndNewBuiltIns(
library = libraries.stdlib.library, library = libraries.stdlib.library,
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT, languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
storageManager = storageManager, storageManager = storageManager,
@@ -37,7 +37,7 @@ internal class NativeDistributionModulesProvider(
val platformModulesMap = libraries.platformLibs.associate { library -> val platformModulesMap = libraries.platformLibs.associate { library ->
val name = library.manifestData.uniqueName val name = library.manifestData.uniqueName
val module = DefaultDeserializedDescriptorFactory.createDescriptorOptionalBuiltIns( val module = NativeFactories.DefaultDeserializedDescriptorFactory.createDescriptorOptionalBuiltIns(
library = library.library, library = library.library,
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT, languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
storageManager = storageManager, storageManager = storageManager,
@@ -1,13 +0,0 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.descriptors.commonizer.utils
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
import org.jetbrains.kotlin.library.metadata.NativeTypeTransformer
import org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer
object NativeFactories : KlibMetadataFactories(::KonanBuiltIns, NullFlexibleTypeDeserializer, NativeTypeTransformer())
@@ -6,13 +6,15 @@
package org.jetbrains.kotlin.descriptors.commonizer.utils package org.jetbrains.kotlin.descriptors.commonizer.utils
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ClassifierDescriptorWithTypeParameters import org.jetbrains.kotlin.descriptors.ClassifierDescriptorWithTypeParameters
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.commonizer.utils.NativeFactories.DefaultDeserializedDescriptorFactory
import org.jetbrains.kotlin.descriptors.commonizer.utils.NativeFactories.createDefaultKonanResolvedModuleDescriptorsFactory
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.incremental.components.LookupLocation import org.jetbrains.kotlin.incremental.components.LookupLocation
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
import org.jetbrains.kotlin.library.metadata.NativeTypeTransformer
import org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.serialization.konan.impl.KlibResolvedModuleDescriptorsFactoryImpl import org.jetbrains.kotlin.serialization.konan.impl.KlibResolvedModuleDescriptorsFactoryImpl
import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.storage.StorageManager
@@ -24,7 +26,7 @@ internal fun createKotlinNativeForwardDeclarationsModule(
storageManager: StorageManager, storageManager: StorageManager,
builtIns: KotlinBuiltIns builtIns: KotlinBuiltIns
): ModuleDescriptorImpl = ): ModuleDescriptorImpl =
(createDefaultKonanResolvedModuleDescriptorsFactory(DefaultDeserializedDescriptorFactory) as KlibResolvedModuleDescriptorsFactoryImpl) (NativeFactories.createDefaultKonanResolvedModuleDescriptorsFactory(NativeFactories.DefaultDeserializedDescriptorFactory) as KlibResolvedModuleDescriptorsFactoryImpl)
.createForwardDeclarationsModule( .createForwardDeclarationsModule(
builtIns = builtIns, builtIns = builtIns,
storageManager = storageManager storageManager = storageManager
@@ -46,3 +48,5 @@ internal fun ModuleDescriptor.resolveClassOrTypeAliasByFqName(
?.unsubstitutedInnerClassesScope ?.unsubstitutedInnerClassesScope
?.getContributedClassifier(fqName.shortName(), lookupLocation) as? ClassifierDescriptorWithTypeParameters ?.getContributedClassifier(fqName.shortName(), lookupLocation) as? ClassifierDescriptorWithTypeParameters
} }
internal val NativeFactories = KlibMetadataFactories(::KonanBuiltIns, NullFlexibleTypeDeserializer, NativeTypeTransformer())