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.DefaultBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorVisitor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.descriptors.annotations.Annotations
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
@@ -46,7 +43,7 @@ class FirModuleDescriptor(val session: FirSession) : ModuleDescriptor {
override val expectedByModules: List<ModuleDescriptor> override val expectedByModules: List<ModuleDescriptor>
get() = TODO("not implemented") get() = TODO("not implemented")
override fun <T> getCapability(capability: ModuleDescriptor.Capability<T>): T? { override fun <T> getCapability(capability: ModuleCapability<T>): T? {
return null return null
} }
@@ -75,4 +72,4 @@ class FirModuleDescriptor(val session: FirSession) : ModuleDescriptor {
override val annotations: Annotations override val annotations: Annotations
get() = Annotations.EMPTY get() = Annotations.EMPTY
} }
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.analyzer 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.name.Name
import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
@@ -18,7 +18,7 @@ interface ModuleInfo {
val platform: TargetPlatform val platform: TargetPlatform
val analyzerServices: PlatformDependentAnalyzerServices val analyzerServices: PlatformDependentAnalyzerServices
fun modulesWhoseInternalsAreVisible(): Collection<ModuleInfo> = listOf() fun modulesWhoseInternalsAreVisible(): Collection<ModuleInfo> = listOf()
val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> val capabilities: Map<ModuleCapability<*>, Any?>
get() = mapOf(Capability to this) get() = mapOf(Capability to this)
val stableName: Name? val stableName: Name?
get() = null get() = null
@@ -35,9 +35,6 @@ interface ModuleInfo {
enum class DependencyOnBuiltIns { NONE, AFTER_SDK, LAST } enum class DependencyOnBuiltIns { NONE, AFTER_SDK, LAST }
companion object { 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.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.container.ComponentProvider import org.jetbrains.kotlin.container.ComponentProvider
import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.ModuleDependencies import org.jetbrains.kotlin.descriptors.impl.ModuleDependencies
@@ -213,4 +214,7 @@ interface ResolverForModuleComputationTracker {
@Suppress("UNCHECKED_CAST") @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.container.useInstance
import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.context.ProjectContext import org.jetbrains.kotlin.context.ProjectContext
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
@@ -61,7 +62,7 @@ class CommonResolverForModuleFactory(
) : ResolverForModuleFactory() { ) : ResolverForModuleFactory() {
private class SourceModuleInfo( private class SourceModuleInfo(
override val name: Name, override val name: Name,
override val capabilities: Map<ModuleDescriptor.Capability<*>, Any?>, override val capabilities: Map<ModuleCapability<*>, Any?>,
private val dependencies: Iterable<ModuleInfo>, private val dependencies: Iterable<ModuleInfo>,
override val expectedBy: List<ModuleInfo>, override val expectedBy: List<ModuleInfo>,
override val platform: TargetPlatform, override val platform: TargetPlatform,
@@ -116,7 +117,7 @@ class CommonResolverForModuleFactory(
fun analyzeFiles( fun analyzeFiles(
files: Collection<KtFile>, moduleName: Name, dependOnBuiltIns: Boolean, languageVersionSettings: LanguageVersionSettings, files: Collection<KtFile>, moduleName: Name, dependOnBuiltIns: Boolean, languageVersionSettings: LanguageVersionSettings,
targetPlatform: TargetPlatform, targetPlatform: TargetPlatform,
capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap(), capabilities: Map<ModuleCapability<*>, Any?> = emptyMap(),
dependenciesContainer: CommonDependenciesContainer? = null, dependenciesContainer: CommonDependenciesContainer? = null,
metadataPartProviderFactory: (ModuleContent<ModuleInfo>) -> MetadataPartProvider metadataPartProviderFactory: (ModuleContent<ModuleInfo>) -> MetadataPartProvider
): AnalysisResult { ): AnalysisResult {
@@ -225,4 +226,4 @@ private fun createContainerToResolveCommonCode(
fun StorageComponentContainer.configureCommonSpecificComponents() { fun StorageComponentContainer.configureCommonSpecificComponents() {
useImpl<MetadataPackageFragmentProvider>() useImpl<MetadataPackageFragmentProvider>()
} }
@@ -5,15 +5,12 @@
package org.jetbrains.kotlin.resolve package org.jetbrains.kotlin.resolve
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
import org.jetbrains.kotlin.descriptors.VariableDescriptor
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
object ImplicitIntegerCoercion { object ImplicitIntegerCoercion {
val MODULE_CAPABILITY = ModuleDescriptor.Capability<Boolean>("ImplicitIntegerCoercion") val MODULE_CAPABILITY = ModuleCapability<Boolean>("ImplicitIntegerCoercion")
fun isEnabledForParameter(descriptor: ParameterDescriptor): Boolean = isEnabledFor(descriptor) 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.withModule
import org.jetbrains.kotlin.context.withProject import org.jetbrains.kotlin.context.withProject
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
@@ -759,6 +760,6 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
companion object { companion object {
private val HASH_SANITIZER = fun(s: String): String = s.replace("@(\\d)+".toRegex(), "") 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 package org.jetbrains.kotlin.descriptors.konan
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -21,7 +22,7 @@ interface KlibModuleDescriptorFactory {
storageManager: StorageManager, storageManager: StorageManager,
builtIns: KotlinBuiltIns, builtIns: KotlinBuiltIns,
origin: KlibModuleOrigin, origin: KlibModuleOrigin,
customCapabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap() customCapabilities: Map<ModuleCapability<*>, Any?> = emptyMap()
): ModuleDescriptorImpl ): ModuleDescriptorImpl
/** /**
@@ -32,6 +33,6 @@ interface KlibModuleDescriptorFactory {
name: Name, name: Name,
storageManager: StorageManager, storageManager: StorageManager,
origin: KlibModuleOrigin, origin: KlibModuleOrigin,
customCapabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap() customCapabilities: Map<ModuleCapability<*>, Any?> = emptyMap()
): ModuleDescriptorImpl ): ModuleDescriptorImpl
} }
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.descriptors.konan package org.jetbrains.kotlin.descriptors.konan
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.library.KotlinLibrary import org.jetbrains.kotlin.library.KotlinLibrary
import org.jetbrains.kotlin.library.isInterop import org.jetbrains.kotlin.library.isInterop
@@ -12,7 +13,7 @@ import org.jetbrains.kotlin.library.isInterop
sealed class KlibModuleOrigin { sealed class KlibModuleOrigin {
companion object { companion object {
val CAPABILITY = ModuleDescriptor.Capability<KlibModuleOrigin>("KlibModuleOrigin") val CAPABILITY = ModuleCapability<KlibModuleOrigin>("KlibModuleOrigin")
} }
} }
@@ -6,9 +6,10 @@
package org.jetbrains.kotlin.descriptors.konan.impl package org.jetbrains.kotlin.descriptors.konan.impl
import org.jetbrains.kotlin.builtins.KotlinBuiltIns 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.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.descriptors.konan.isInteropLibrary
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.konan.NativePlatforms import org.jetbrains.kotlin.platform.konan.NativePlatforms
@@ -22,7 +23,7 @@ internal class KlibModuleDescriptorFactoryImpl(val createBuiltIns: (StorageManag
storageManager: StorageManager, storageManager: StorageManager,
builtIns: KotlinBuiltIns, builtIns: KotlinBuiltIns,
origin: KlibModuleOrigin, origin: KlibModuleOrigin,
customCapabilities: Map<ModuleDescriptor.Capability<*>, Any?> customCapabilities: Map<ModuleCapability<*>, Any?>
) = ModuleDescriptorImpl( ) = ModuleDescriptorImpl(
name, name,
storageManager, storageManager,
@@ -39,7 +40,7 @@ internal class KlibModuleDescriptorFactoryImpl(val createBuiltIns: (StorageManag
name: Name, name: Name,
storageManager: StorageManager, storageManager: StorageManager,
origin: KlibModuleOrigin, origin: KlibModuleOrigin,
customCapabilities: Map<ModuleDescriptor.Capability<*>, Any?> customCapabilities: Map<ModuleCapability<*>, Any?>
): ModuleDescriptorImpl { ): ModuleDescriptorImpl {
val builtIns = createBuiltIns(storageManager) val builtIns = createBuiltIns(storageManager)
@@ -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<T>(val name: String) {
override fun toString() = name
}
@@ -52,7 +52,7 @@ interface ModuleDescriptor : DeclarationDescriptor {
val expectedByModules: List<ModuleDescriptor> val expectedByModules: List<ModuleDescriptor>
fun <T> getCapability(capability: Capability<T>): T? fun <T> getCapability(capability: ModuleCapability<T>): T?
class Capability<T>(val name: String) { class Capability<T>(val name: String) {
override fun toString() = name override fun toString() = name
@@ -17,10 +17,7 @@
package org.jetbrains.kotlin.descriptors.impl package org.jetbrains.kotlin.descriptors.impl
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.InvalidModuleException import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.descriptors.annotations.Annotations
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -37,10 +34,10 @@ class ModuleDescriptorImpl @JvmOverloads constructor(
override val builtIns: KotlinBuiltIns, override val builtIns: KotlinBuiltIns,
// May be null in compiler context, should be not-null in IDE context // May be null in compiler context, should be not-null in IDE context
override val platform: TargetPlatform? = null, override val platform: TargetPlatform? = null,
capabilities: Map<ModuleDescriptor.Capability<*>, Any?> = emptyMap(), capabilities: Map<ModuleCapability<*>, Any?> = emptyMap(),
override val stableName: Name? = null, override val stableName: Name? = null,
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor { ) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor {
private val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> private val capabilities: Map<ModuleCapability<*>, Any?>
init { init {
if (!moduleName.isSpecial) { if (!moduleName.isSpecial) {
@@ -151,7 +148,7 @@ class ModuleDescriptorImpl @JvmOverloads constructor(
} }
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
override fun <T> getCapability(capability: ModuleDescriptor.Capability<T>) = capabilities[capability] as? T override fun <T> getCapability(capability: ModuleCapability<T>) = capabilities[capability] as? T
} }
interface ModuleDependencies { interface ModuleDependencies {
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.resolve package org.jetbrains.kotlin.resolve
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
interface ResolutionAnchorProvider { interface ResolutionAnchorProvider {
@@ -17,4 +18,4 @@ interface ResolutionAnchorProvider {
} }
} }
val RESOLUTION_ANCHOR_PROVIDER_CAPABILITY = ModuleDescriptor.Capability<ResolutionAnchorProvider>("ResolutionAnchorProvider") val RESOLUTION_ANCHOR_PROVIDER_CAPABILITY = ModuleCapability<ResolutionAnchorProvider>("ResolutionAnchorProvider")
@@ -55,7 +55,7 @@ public class ErrorUtils {
ERROR_MODULE = new ModuleDescriptor() { ERROR_MODULE = new ModuleDescriptor() {
@Nullable @Nullable
@Override @Override
public <T> T getCapability(@NotNull Capability<T> capability) { public <T> T getCapability(@NotNull ModuleCapability<T> capability) {
return null; return null;
} }
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.resolve.scopes.MemberScope import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.TypeConstructor import org.jetbrains.kotlin.types.TypeConstructor
import org.jetbrains.kotlin.types.UnwrappedType
import org.jetbrains.kotlin.types.refinement.TypeRefinement import org.jetbrains.kotlin.types.refinement.TypeRefinement
@DefaultImplementation(impl = KotlinTypeRefiner.Default::class) @DefaultImplementation(impl = KotlinTypeRefiner.Default::class)
@@ -79,4 +78,4 @@ fun KotlinTypeRefiner.refineTypes(types: Iterable<KotlinType>): List<KotlinType>
class Ref<T : Any>(var value: T?) class Ref<T : Any>(var value: T?)
@TypeRefinement @TypeRefinement
val REFINER_CAPABILITY = ModuleDescriptor.Capability<Ref<KotlinTypeRefiner>>("KotlinTypeRefiner") val REFINER_CAPABILITY = ModuleCapability<Ref<KotlinTypeRefiner>>("KotlinTypeRefiner")
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.caches.project.cacheInvalidatingOnRootModifications
import org.jetbrains.kotlin.caches.resolve.resolution import org.jetbrains.kotlin.caches.resolve.resolution
import org.jetbrains.kotlin.config.SourceKotlinRootType import org.jetbrains.kotlin.config.SourceKotlinRootType
import org.jetbrains.kotlin.config.TestSourceKotlinRootType 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.KotlinIdeaAnalysisBundle
import org.jetbrains.kotlin.idea.caches.resolve.util.enlargedSearchScope import org.jetbrains.kotlin.idea.caches.resolve.util.enlargedSearchScope
import org.jetbrains.kotlin.idea.caches.trackers.KotlinModuleOutOfCodeBlockModificationTracker 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.resolve.jvm.platform.JvmPlatformAnalyzerServices
import org.jetbrains.kotlin.types.typeUtil.closure import org.jetbrains.kotlin.types.typeUtil.closure
import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.utils.addIfNotNull
import java.lang.StringBuilder
import java.util.* import java.util.*
internal val LOG = Logger.getInstance(IdeaModuleInfo::class.java) internal val LOG = Logger.getInstance(IdeaModuleInfo::class.java)
@@ -77,7 +76,7 @@ interface IdeaModuleInfo : org.jetbrains.kotlin.idea.caches.resolve.IdeaModuleIn
val project: Project? val project: Project?
override val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> override val capabilities: Map<ModuleCapability<*>, Any?>
get() = super.capabilities + mapOf(OriginCapability to moduleOrigin) get() = super.capabilities + mapOf(OriginCapability to moduleOrigin)
override fun dependencies(): List<IdeaModuleInfo> override fun dependencies(): List<IdeaModuleInfo>
@@ -494,7 +493,7 @@ private class SdkScope(project: Project, val sdk: Sdk) :
fun IdeaModuleInfo.isLibraryClasses() = this is SdkInfo || this is LibraryInfo fun IdeaModuleInfo.isLibraryClasses() = this is SdkInfo || this is LibraryInfo
val OriginCapability = ModuleDescriptor.Capability<ModuleOrigin>("MODULE_ORIGIN") val OriginCapability = ModuleCapability<ModuleOrigin>("MODULE_ORIGIN")
enum class ModuleOrigin { enum class ModuleOrigin {
MODULE, MODULE,
@@ -538,7 +537,7 @@ data class PlatformModuleInfo(
override val platformModule: ModuleSourceInfo, override val platformModule: ModuleSourceInfo,
private val commonModules: List<ModuleSourceInfo> // NOTE: usually contains a single element for current implementation private val commonModules: List<ModuleSourceInfo> // NOTE: usually contains a single element for current implementation
) : IdeaModuleInfo, CombinedModuleInfo, TrackableModuleInfo { ) : IdeaModuleInfo, CombinedModuleInfo, TrackableModuleInfo {
override val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> override val capabilities: Map<ModuleCapability<*>, Any?>
get() = platformModule.capabilities get() = platformModule.capabilities
override fun contentScope() = GlobalSearchScope.union(containedModules.map { it.contentScope() }.toTypedArray()) override fun contentScope() = GlobalSearchScope.union(containedModules.map { it.contentScope() }.toTypedArray())
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
import org.jetbrains.kotlin.caches.resolve.IdePlatformKindResolution import org.jetbrains.kotlin.caches.resolve.IdePlatformKindResolution
import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.context.ProjectContext import org.jetbrains.kotlin.context.ProjectContext
import org.jetbrains.kotlin.descriptors.ModuleCapability
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider 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.library.KONAN_STDLIB_NAME
import org.jetbrains.kotlin.konan.util.KlibMetadataFactories import org.jetbrains.kotlin.konan.util.KlibMetadataFactories
import org.jetbrains.kotlin.library.isInterop 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.metadata.NullFlexibleTypeDeserializer
import org.jetbrains.kotlin.library.nativeTargets 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
import org.jetbrains.kotlin.platform.konan.NativePlatforms.nativePlatformByTargetNames 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.serialization.konan.impl.KlibMetadataModuleDescriptorFactoryImpl
import org.jetbrains.kotlin.storage.StorageManager 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 // If you're changing this, please take a look at ideaModelDependencies as well
val isStdlib: Boolean get() = libraryRoot.endsWith(KONAN_STDLIB_NAME) val isStdlib: Boolean get() = libraryRoot.endsWith(KONAN_STDLIB_NAME)
override val capabilities: Map<ModuleDescriptor.Capability<*>, Any?> override val capabilities: Map<ModuleCapability<*>, Any?>
get() { get() {
val capabilities = super.capabilities.toMutableMap() val capabilities = super.capabilities.toMutableMap()
capabilities += KlibModuleOrigin.CAPABILITY to DeserializedKlibModuleOrigin(resolvedKotlinLibrary) capabilities += KlibModuleOrigin.CAPABILITY to DeserializedKlibModuleOrigin(resolvedKotlinLibrary)
@@ -189,7 +189,7 @@ private object DebugLabelModuleDescriptor : DeclarationDescriptorImpl(Annotation
override val expectedByModules: List<ModuleDescriptor> override val expectedByModules: List<ModuleDescriptor>
get() = emptyList() get() = emptyList()
override fun <T> getCapability(capability: ModuleDescriptor.Capability<T>): T? = null override fun <T> getCapability(capability: ModuleCapability<T>): T? = null
override val isValid: Boolean override val isValid: Boolean
get() = true get() = true