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
@@ -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")