Move ModuleDescriptor.Capability to :core:descriptors.common module
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
+3
-2
@@ -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 {
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -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>>("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -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")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-4
@@ -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)
|
||||||
|
|||||||
+1
-1
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user