From 3a48265077c9bcafe6241d928a2ba0d881357d97 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 17 Aug 2020 09:56:19 +0300 Subject: [PATCH] Move ModuleDescriptor.Capability to :core:descriptors.common module --- .../kotlin/fir/descriptors/FirModuleDescriptor.kt | 9 +++------ .../src/org/jetbrains/kotlin/analyzer/ModuleInfo.kt | 9 +++------ .../org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt | 6 +++++- .../analyzer/common/CommonResolverForModuleFactory.kt | 7 ++++--- .../kotlin/resolve/ImplicitIntegerCoercion.kt | 7 ++----- .../kotlin/checkers/AbstractDiagnosticsTest.kt | 3 ++- .../library/metadata/KlibModuleDescriptorFactory.kt | 5 +++-- .../kotlin/library/metadata/KlibModuleOrigin.kt | 3 ++- .../metadata/impl/KlibModuleDescriptorFactoryImpl.kt | 9 +++++---- .../jetbrains/kotlin/descriptors/ModuleCapability.kt | 10 ++++++++++ .../jetbrains/kotlin/descriptors/ModuleDescriptor.kt | 2 +- .../kotlin/descriptors/impl/ModuleDescriptorImpl.kt | 11 ++++------- .../kotlin/resolve/ResolutionAnchorProvider.kt | 3 ++- .../src/org/jetbrains/kotlin/types/ErrorUtils.java | 2 +- .../kotlin/types/checker/KotlinTypeRefiner.kt | 3 +-- .../kotlin/idea/caches/project/IdeaModuleInfos.kt | 9 ++++----- .../kotlin/ide/konan/NativePlatformKindResolution.kt | 11 ++++++----- .../DebugLabelPropertyDescriptorProvider.kt | 2 +- 18 files changed, 59 insertions(+), 52 deletions(-) create mode 100644 core/descriptors.common/src/org/jetbrains/kotlin/descriptors/ModuleCapability.kt diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/descriptors/FirModuleDescriptor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/descriptors/FirModuleDescriptor.kt index ed9bc9d8ccf..388c4711214 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/descriptors/FirModuleDescriptor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/descriptors/FirModuleDescriptor.kt @@ -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 get() = TODO("not implemented") - override fun getCapability(capability: ModuleDescriptor.Capability): T? { + override fun getCapability(capability: ModuleCapability): T? { return null } @@ -75,4 +72,4 @@ class FirModuleDescriptor(val session: FirSession) : ModuleDescriptor { override val annotations: Annotations get() = Annotations.EMPTY -} \ No newline at end of file +} diff --git a/compiler/frontend.common/src/org/jetbrains/kotlin/analyzer/ModuleInfo.kt b/compiler/frontend.common/src/org/jetbrains/kotlin/analyzer/ModuleInfo.kt index bb4ae7d2770..45cd0989de4 100644 --- a/compiler/frontend.common/src/org/jetbrains/kotlin/analyzer/ModuleInfo.kt +++ b/compiler/frontend.common/src/org/jetbrains/kotlin/analyzer/ModuleInfo.kt @@ -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 = listOf() - val capabilities: Map, Any?> + val capabilities: Map, 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") + val Capability = ModuleCapability("ModuleInfo") } } - -val ModuleDescriptor.moduleInfo: ModuleInfo? - get() = getCapability(ModuleInfo.Capability) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt index bb8f5a62e68..f12a2e5caa9 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt @@ -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 ModuleInfo.getCapability(capability: ModuleDescriptor.Capability) = capabilities[capability] as? T +fun ModuleInfo.getCapability(capability: ModuleCapability) = capabilities[capability] as? T + +val ModuleDescriptor.moduleInfo: ModuleInfo? + get() = getCapability(ModuleInfo.Capability) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/common/CommonResolverForModuleFactory.kt b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/common/CommonResolverForModuleFactory.kt index 3bd78d3e91b..baf857079c6 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/common/CommonResolverForModuleFactory.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/common/CommonResolverForModuleFactory.kt @@ -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, Any?>, + override val capabilities: Map, Any?>, private val dependencies: Iterable, override val expectedBy: List, override val platform: TargetPlatform, @@ -116,7 +117,7 @@ class CommonResolverForModuleFactory( fun analyzeFiles( files: Collection, moduleName: Name, dependOnBuiltIns: Boolean, languageVersionSettings: LanguageVersionSettings, targetPlatform: TargetPlatform, - capabilities: Map, Any?> = emptyMap(), + capabilities: Map, Any?> = emptyMap(), dependenciesContainer: CommonDependenciesContainer? = null, metadataPartProviderFactory: (ModuleContent) -> MetadataPartProvider ): AnalysisResult { @@ -225,4 +226,4 @@ private fun createContainerToResolveCommonCode( fun StorageComponentContainer.configureCommonSpecificComponents() { useImpl() -} \ No newline at end of file +} diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ImplicitIntegerCoercion.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ImplicitIntegerCoercion.kt index b43b031cc61..545102eca14 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ImplicitIntegerCoercion.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ImplicitIntegerCoercion.kt @@ -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("ImplicitIntegerCoercion") + val MODULE_CAPABILITY = ModuleCapability("ImplicitIntegerCoercion") fun isEnabledForParameter(descriptor: ParameterDescriptor): Boolean = isEnabledFor(descriptor) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt index abeb6646b99..026b4cdd64e 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt @@ -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>("") + private val MODULE_FILES = ModuleCapability>("") } } diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibModuleDescriptorFactory.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibModuleDescriptorFactory.kt index 43f9db4d4b1..666eaaa1f6c 100644 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibModuleDescriptorFactory.kt +++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibModuleDescriptorFactory.kt @@ -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, Any?> = emptyMap() + customCapabilities: Map, Any?> = emptyMap() ): ModuleDescriptorImpl /** @@ -32,6 +33,6 @@ interface KlibModuleDescriptorFactory { name: Name, storageManager: StorageManager, origin: KlibModuleOrigin, - customCapabilities: Map, Any?> = emptyMap() + customCapabilities: Map, Any?> = emptyMap() ): ModuleDescriptorImpl } diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibModuleOrigin.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibModuleOrigin.kt index 5fc69ec421d..6d292abe053 100644 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibModuleOrigin.kt +++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibModuleOrigin.kt @@ -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") + val CAPABILITY = ModuleCapability("KlibModuleOrigin") } } diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/impl/KlibModuleDescriptorFactoryImpl.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/impl/KlibModuleDescriptorFactoryImpl.kt index c69d63be873..8e9f49c5efd 100644 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/impl/KlibModuleDescriptorFactoryImpl.kt +++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/impl/KlibModuleDescriptorFactoryImpl.kt @@ -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, Any?> + customCapabilities: Map, Any?> ) = ModuleDescriptorImpl( name, storageManager, @@ -39,7 +40,7 @@ internal class KlibModuleDescriptorFactoryImpl(val createBuiltIns: (StorageManag name: Name, storageManager: StorageManager, origin: KlibModuleOrigin, - customCapabilities: Map, Any?> + customCapabilities: Map, Any?> ): ModuleDescriptorImpl { val builtIns = createBuiltIns(storageManager) diff --git a/core/descriptors.common/src/org/jetbrains/kotlin/descriptors/ModuleCapability.kt b/core/descriptors.common/src/org/jetbrains/kotlin/descriptors/ModuleCapability.kt new file mode 100644 index 00000000000..ed6ad211a7b --- /dev/null +++ b/core/descriptors.common/src/org/jetbrains/kotlin/descriptors/ModuleCapability.kt @@ -0,0 +1,10 @@ +/* + * 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 + +class ModuleCapability(val name: String) { + override fun toString() = name +} diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/ModuleDescriptor.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/ModuleDescriptor.kt index 5df8bf5c95f..5fed4e669cb 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/ModuleDescriptor.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/ModuleDescriptor.kt @@ -52,7 +52,7 @@ interface ModuleDescriptor : DeclarationDescriptor { val expectedByModules: List - fun getCapability(capability: Capability): T? + fun getCapability(capability: ModuleCapability): T? class Capability(val name: String) { override fun toString() = name diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ModuleDescriptorImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ModuleDescriptorImpl.kt index ba4f3b5efc0..2d745b24777 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ModuleDescriptorImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/ModuleDescriptorImpl.kt @@ -17,10 +17,7 @@ package org.jetbrains.kotlin.descriptors.impl import org.jetbrains.kotlin.builtins.KotlinBuiltIns -import org.jetbrains.kotlin.descriptors.InvalidModuleException -import org.jetbrains.kotlin.descriptors.ModuleDescriptor -import org.jetbrains.kotlin.descriptors.PackageFragmentProvider -import org.jetbrains.kotlin.descriptors.PackageViewDescriptor +import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -37,10 +34,10 @@ class ModuleDescriptorImpl @JvmOverloads constructor( override val builtIns: KotlinBuiltIns, // May be null in compiler context, should be not-null in IDE context override val platform: TargetPlatform? = null, - capabilities: Map, Any?> = emptyMap(), + capabilities: Map, Any?> = emptyMap(), override val stableName: Name? = null, ) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor { - private val capabilities: Map, Any?> + private val capabilities: Map, Any?> init { if (!moduleName.isSpecial) { @@ -151,7 +148,7 @@ class ModuleDescriptorImpl @JvmOverloads constructor( } @Suppress("UNCHECKED_CAST") - override fun getCapability(capability: ModuleDescriptor.Capability) = capabilities[capability] as? T + override fun getCapability(capability: ModuleCapability) = capabilities[capability] as? T } interface ModuleDependencies { diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/ResolutionAnchorProvider.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/ResolutionAnchorProvider.kt index 4fa5186b414..4b57e952478 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/ResolutionAnchorProvider.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/ResolutionAnchorProvider.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.resolve +import org.jetbrains.kotlin.descriptors.ModuleCapability import org.jetbrains.kotlin.descriptors.ModuleDescriptor interface ResolutionAnchorProvider { @@ -17,4 +18,4 @@ interface ResolutionAnchorProvider { } } -val RESOLUTION_ANCHOR_PROVIDER_CAPABILITY = ModuleDescriptor.Capability("ResolutionAnchorProvider") +val RESOLUTION_ANCHOR_PROVIDER_CAPABILITY = ModuleCapability("ResolutionAnchorProvider") diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java index 4c1adc37fc1..21da069ecae 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java @@ -55,7 +55,7 @@ public class ErrorUtils { ERROR_MODULE = new ModuleDescriptor() { @Nullable @Override - public T getCapability(@NotNull Capability capability) { + public T getCapability(@NotNull ModuleCapability capability) { return null; } diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/checker/KotlinTypeRefiner.kt b/core/descriptors/src/org/jetbrains/kotlin/types/checker/KotlinTypeRefiner.kt index 3f4dcb7f811..a1e0a0a07e2 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/checker/KotlinTypeRefiner.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/checker/KotlinTypeRefiner.kt @@ -11,7 +11,6 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.resolve.scopes.MemberScope import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.TypeConstructor -import org.jetbrains.kotlin.types.UnwrappedType import org.jetbrains.kotlin.types.refinement.TypeRefinement @DefaultImplementation(impl = KotlinTypeRefiner.Default::class) @@ -79,4 +78,4 @@ fun KotlinTypeRefiner.refineTypes(types: Iterable): List class Ref(var value: T?) @TypeRefinement -val REFINER_CAPABILITY = ModuleDescriptor.Capability>("KotlinTypeRefiner") \ No newline at end of file +val REFINER_CAPABILITY = ModuleCapability>("KotlinTypeRefiner") diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt index 1d1572a6451..35c143ec517 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt @@ -30,7 +30,7 @@ import org.jetbrains.kotlin.caches.project.cacheInvalidatingOnRootModifications import org.jetbrains.kotlin.caches.resolve.resolution import org.jetbrains.kotlin.config.SourceKotlinRootType import org.jetbrains.kotlin.config.TestSourceKotlinRootType -import org.jetbrains.kotlin.descriptors.ModuleDescriptor +import org.jetbrains.kotlin.descriptors.ModuleCapability import org.jetbrains.kotlin.idea.KotlinIdeaAnalysisBundle import org.jetbrains.kotlin.idea.caches.resolve.util.enlargedSearchScope import org.jetbrains.kotlin.idea.caches.trackers.KotlinModuleOutOfCodeBlockModificationTracker @@ -64,7 +64,6 @@ import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices import org.jetbrains.kotlin.types.typeUtil.closure import org.jetbrains.kotlin.utils.addIfNotNull -import java.lang.StringBuilder import java.util.* internal val LOG = Logger.getInstance(IdeaModuleInfo::class.java) @@ -77,7 +76,7 @@ interface IdeaModuleInfo : org.jetbrains.kotlin.idea.caches.resolve.IdeaModuleIn val project: Project? - override val capabilities: Map, Any?> + override val capabilities: Map, Any?> get() = super.capabilities + mapOf(OriginCapability to moduleOrigin) override fun dependencies(): List @@ -494,7 +493,7 @@ private class SdkScope(project: Project, val sdk: Sdk) : fun IdeaModuleInfo.isLibraryClasses() = this is SdkInfo || this is LibraryInfo -val OriginCapability = ModuleDescriptor.Capability("MODULE_ORIGIN") +val OriginCapability = ModuleCapability("MODULE_ORIGIN") enum class ModuleOrigin { MODULE, @@ -538,7 +537,7 @@ data class PlatformModuleInfo( override val platformModule: ModuleSourceInfo, private val commonModules: List // NOTE: usually contains a single element for current implementation ) : IdeaModuleInfo, CombinedModuleInfo, TrackableModuleInfo { - override val capabilities: Map, Any?> + override val capabilities: Map, Any?> get() = platformModule.capabilities override fun contentScope() = GlobalSearchScope.union(containedModules.map { it.contentScope() }.toTypedArray()) diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/NativePlatformKindResolution.kt b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/NativePlatformKindResolution.kt index 1f640cd260c..cf4c833f7f5 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/NativePlatformKindResolution.kt +++ b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/NativePlatformKindResolution.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns import org.jetbrains.kotlin.caches.resolve.IdePlatformKindResolution import org.jetbrains.kotlin.config.LanguageVersionSettings 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 @@ -37,14 +38,14 @@ import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.konan.library.KONAN_STDLIB_NAME import org.jetbrains.kotlin.konan.util.KlibMetadataFactories import org.jetbrains.kotlin.library.isInterop -import org.jetbrains.kotlin.platform.TargetPlatform -import org.jetbrains.kotlin.platform.impl.NativeIdePlatformKind -import org.jetbrains.kotlin.resolve.ImplicitIntegerCoercion -import org.jetbrains.kotlin.resolve.TargetEnvironment import org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer import org.jetbrains.kotlin.library.nativeTargets +import org.jetbrains.kotlin.platform.TargetPlatform +import org.jetbrains.kotlin.platform.impl.NativeIdePlatformKind import org.jetbrains.kotlin.platform.konan.NativePlatforms import org.jetbrains.kotlin.platform.konan.NativePlatforms.nativePlatformByTargetNames +import org.jetbrains.kotlin.resolve.ImplicitIntegerCoercion +import org.jetbrains.kotlin.resolve.TargetEnvironment import org.jetbrains.kotlin.serialization.konan.impl.KlibMetadataModuleDescriptorFactoryImpl import org.jetbrains.kotlin.storage.StorageManager @@ -156,7 +157,7 @@ class NativeKlibLibraryInfo(project: Project, library: Library, libraryRoot: Str // If you're changing this, please take a look at ideaModelDependencies as well val isStdlib: Boolean get() = libraryRoot.endsWith(KONAN_STDLIB_NAME) - override val capabilities: Map, Any?> + override val capabilities: Map, Any?> get() { val capabilities = super.capabilities.toMutableMap() capabilities += KlibModuleOrigin.CAPABILITY to DeserializedKlibModuleOrigin(resolvedKotlinLibrary) diff --git a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilation/DebugLabelPropertyDescriptorProvider.kt b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilation/DebugLabelPropertyDescriptorProvider.kt index 459390ef4a5..ffdc20b2937 100644 --- a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilation/DebugLabelPropertyDescriptorProvider.kt +++ b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilation/DebugLabelPropertyDescriptorProvider.kt @@ -189,7 +189,7 @@ private object DebugLabelModuleDescriptor : DeclarationDescriptorImpl(Annotation override val expectedByModules: List get() = emptyList() - override fun getCapability(capability: ModuleDescriptor.Capability): T? = null + override fun getCapability(capability: ModuleCapability): T? = null override val isValid: Boolean get() = true