Move ModuleDescriptor.Capability to :core:descriptors.common module

This commit is contained in:
Dmitriy Novozhilov
2020-08-17 09:56:19 +03:00
parent 6f0cd14afa
commit 3a48265077
18 changed files with 59 additions and 52 deletions
@@ -7,10 +7,7 @@ package org.jetbrains.kotlin.fir.descriptors
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorVisitor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotations
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
@@ -46,7 +43,7 @@ class FirModuleDescriptor(val session: FirSession) : ModuleDescriptor {
override val expectedByModules: List<ModuleDescriptor>
get() = TODO("not implemented")
override fun <T> getCapability(capability: ModuleDescriptor.Capability<T>): T? {
override fun <T> getCapability(capability: ModuleCapability<T>): T? {
return null
}
@@ -75,4 +72,4 @@ class FirModuleDescriptor(val session: FirSession) : ModuleDescriptor {
override val annotations: Annotations
get() = Annotations.EMPTY
}
}
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.analyzer
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
@@ -18,7 +18,7 @@ interface ModuleInfo {
val platform: TargetPlatform
val analyzerServices: PlatformDependentAnalyzerServices
fun modulesWhoseInternalsAreVisible(): Collection<ModuleInfo> = listOf()
val capabilities: Map<ModuleDescriptor.Capability<*>, Any?>
val capabilities: Map<ModuleCapability<*>, Any?>
get() = mapOf(Capability to this)
val stableName: Name?
get() = null
@@ -35,9 +35,6 @@ interface ModuleInfo {
enum class DependencyOnBuiltIns { NONE, AFTER_SDK, LAST }
companion object {
val Capability = ModuleDescriptor.Capability<ModuleInfo>("ModuleInfo")
val Capability = ModuleCapability<ModuleInfo>("ModuleInfo")
}
}
val ModuleDescriptor.moduleInfo: ModuleInfo?
get() = getCapability(ModuleInfo.Capability)
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.container.ComponentProvider
import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.ModuleDependencies
@@ -213,4 +214,7 @@ interface ResolverForModuleComputationTracker {
@Suppress("UNCHECKED_CAST")
fun <T> ModuleInfo.getCapability(capability: ModuleDescriptor.Capability<T>) = capabilities[capability] as? T
fun <T> ModuleInfo.getCapability(capability: ModuleCapability<T>) = capabilities[capability] as? T
val ModuleDescriptor.moduleInfo: ModuleInfo?
get() = getCapability(ModuleInfo.Capability)
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.container.useImpl
import org.jetbrains.kotlin.container.useInstance
import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.context.ProjectContext
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
@@ -61,7 +62,7 @@ class CommonResolverForModuleFactory(
) : ResolverForModuleFactory() {
private class SourceModuleInfo(
override val name: Name,
override val capabilities: Map<ModuleDescriptor.Capability<*>, Any?>,
override val capabilities: Map<ModuleCapability<*>, Any?>,
private val dependencies: Iterable<ModuleInfo>,
override val expectedBy: List<ModuleInfo>,
override val platform: TargetPlatform,
@@ -116,7 +117,7 @@ class CommonResolverForModuleFactory(
fun analyzeFiles(
files: Collection<KtFile>, moduleName: Name, dependOnBuiltIns: Boolean, languageVersionSettings: LanguageVersionSettings,
targetPlatform: TargetPlatform,
capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap(),
capabilities: Map<ModuleCapability<*>, Any?> = emptyMap(),
dependenciesContainer: CommonDependenciesContainer? = null,
metadataPartProviderFactory: (ModuleContent<ModuleInfo>) -> MetadataPartProvider
): AnalysisResult {
@@ -225,4 +226,4 @@ private fun createContainerToResolveCommonCode(
fun StorageComponentContainer.configureCommonSpecificComponents() {
useImpl<MetadataPackageFragmentProvider>()
}
}
@@ -5,15 +5,12 @@
package org.jetbrains.kotlin.resolve
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
import org.jetbrains.kotlin.descriptors.VariableDescriptor
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.name.FqName
object ImplicitIntegerCoercion {
val MODULE_CAPABILITY = ModuleDescriptor.Capability<Boolean>("ImplicitIntegerCoercion")
val MODULE_CAPABILITY = ModuleCapability<Boolean>("ImplicitIntegerCoercion")
fun isEnabledForParameter(descriptor: ParameterDescriptor): Boolean = isEnabledFor(descriptor)
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.context.SimpleGlobalContext
import org.jetbrains.kotlin.context.withModule
import org.jetbrains.kotlin.context.withProject
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
@@ -759,6 +760,6 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
companion object {
private val HASH_SANITIZER = fun(s: String): String = s.replace("@(\\d)+".toRegex(), "")
private val MODULE_FILES = ModuleDescriptor.Capability<List<KtFile>>("")
private val MODULE_FILES = ModuleCapability<List<KtFile>>("")
}
}
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.descriptors.konan
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.name.Name
@@ -21,7 +22,7 @@ interface KlibModuleDescriptorFactory {
storageManager: StorageManager,
builtIns: KotlinBuiltIns,
origin: KlibModuleOrigin,
customCapabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
customCapabilities: Map<ModuleCapability<*>, Any?> = emptyMap()
): ModuleDescriptorImpl
/**
@@ -32,6 +33,6 @@ interface KlibModuleDescriptorFactory {
name: Name,
storageManager: StorageManager,
origin: KlibModuleOrigin,
customCapabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap()
customCapabilities: Map<ModuleCapability<*>, Any?> = emptyMap()
): ModuleDescriptorImpl
}
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.descriptors.konan
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.library.KotlinLibrary
import org.jetbrains.kotlin.library.isInterop
@@ -12,7 +13,7 @@ import org.jetbrains.kotlin.library.isInterop
sealed class KlibModuleOrigin {
companion object {
val CAPABILITY = ModuleDescriptor.Capability<KlibModuleOrigin>("KlibModuleOrigin")
val CAPABILITY = ModuleCapability<KlibModuleOrigin>("KlibModuleOrigin")
}
}
@@ -6,9 +6,10 @@
package org.jetbrains.kotlin.descriptors.konan.impl
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.descriptors.konan.*
import org.jetbrains.kotlin.descriptors.konan.KlibModuleDescriptorFactory
import org.jetbrains.kotlin.descriptors.konan.KlibModuleOrigin
import org.jetbrains.kotlin.descriptors.konan.isInteropLibrary
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.konan.NativePlatforms
@@ -22,7 +23,7 @@ internal class KlibModuleDescriptorFactoryImpl(val createBuiltIns: (StorageManag
storageManager: StorageManager,
builtIns: KotlinBuiltIns,
origin: KlibModuleOrigin,
customCapabilities: Map<ModuleDescriptor.Capability<*>, Any?>
customCapabilities: Map<ModuleCapability<*>, Any?>
) = ModuleDescriptorImpl(
name,
storageManager,
@@ -39,7 +40,7 @@ internal class KlibModuleDescriptorFactoryImpl(val createBuiltIns: (StorageManag
name: Name,
storageManager: StorageManager,
origin: KlibModuleOrigin,
customCapabilities: Map<ModuleDescriptor.Capability<*>, Any?>
customCapabilities: Map<ModuleCapability<*>, Any?>
): ModuleDescriptorImpl {
val builtIns = createBuiltIns(storageManager)