Move ModuleDescriptor.Capability to :core:descriptors.common module
This commit is contained in:
@@ -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>
|
||||
|
||||
fun <T> getCapability(capability: Capability<T>): T?
|
||||
fun <T> getCapability(capability: ModuleCapability<T>): T?
|
||||
|
||||
class Capability<T>(val name: String) {
|
||||
override fun toString() = name
|
||||
|
||||
@@ -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<ModuleDescriptor.Capability<*>, Any?> = emptyMap(),
|
||||
capabilities: Map<ModuleCapability<*>, Any?> = emptyMap(),
|
||||
override val stableName: Name? = null,
|
||||
) : DeclarationDescriptorImpl(Annotations.EMPTY, moduleName), ModuleDescriptor {
|
||||
private val capabilities: Map<ModuleDescriptor.Capability<*>, Any?>
|
||||
private val capabilities: Map<ModuleCapability<*>, Any?>
|
||||
|
||||
init {
|
||||
if (!moduleName.isSpecial) {
|
||||
@@ -151,7 +148,7 @@ class ModuleDescriptorImpl @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
@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 {
|
||||
|
||||
@@ -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>("ResolutionAnchorProvider")
|
||||
val RESOLUTION_ANCHOR_PROVIDER_CAPABILITY = ModuleCapability<ResolutionAnchorProvider>("ResolutionAnchorProvider")
|
||||
|
||||
@@ -55,7 +55,7 @@ public class ErrorUtils {
|
||||
ERROR_MODULE = new ModuleDescriptor() {
|
||||
@Nullable
|
||||
@Override
|
||||
public <T> T getCapability(@NotNull Capability<T> capability) {
|
||||
public <T> T getCapability(@NotNull ModuleCapability<T> capability) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -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<KotlinType>): List<KotlinType>
|
||||
class Ref<T : Any>(var value: T?)
|
||||
|
||||
@TypeRefinement
|
||||
val REFINER_CAPABILITY = ModuleDescriptor.Capability<Ref<KotlinTypeRefiner>>("KotlinTypeRefiner")
|
||||
val REFINER_CAPABILITY = ModuleCapability<Ref<KotlinTypeRefiner>>("KotlinTypeRefiner")
|
||||
|
||||
Reference in New Issue
Block a user