Drop ModuleDescriptor.sourceKind, move this code to IDE modules
This information is only used in IDE and it can easily be computed there
This commit is contained in:
-9
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.analyzer.ResolverForProject
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.context.GlobalContextImpl
|
||||
import org.jetbrains.kotlin.context.withProject
|
||||
import org.jetbrains.kotlin.descriptors.SourceKind
|
||||
import org.jetbrains.kotlin.idea.project.AnalyzerFacadeProvider
|
||||
import org.jetbrains.kotlin.idea.project.IdeaEnvironment
|
||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
||||
@@ -87,15 +86,7 @@ fun createModuleResolverProvider(
|
||||
modulePlatforms = { moduleInfo ->
|
||||
val module = (moduleInfo as? ModuleSourceInfo)?.module
|
||||
module?.let { TargetPlatformDetector.getPlatform(module).multiTargetPlatform }
|
||||
},
|
||||
moduleSources = { moduleInfo ->
|
||||
when (moduleInfo) {
|
||||
is ModuleProductionSourceInfo -> SourceKind.PRODUCTION
|
||||
is ModuleTestSourceInfo -> SourceKind.TEST
|
||||
else -> SourceKind.NONE
|
||||
}
|
||||
}
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,10 @@
|
||||
package org.jetbrains.kotlin.idea.highlighter.markers
|
||||
|
||||
import com.intellij.psi.NavigatablePsiElement
|
||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.ModuleProductionSourceInfo
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.ModuleTestSourceInfo
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor
|
||||
import org.jetbrains.kotlin.idea.core.toDescriptor
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
@@ -26,9 +29,21 @@ import org.jetbrains.kotlin.resolve.MultiTargetPlatform
|
||||
import org.jetbrains.kotlin.resolve.checkers.HeaderImplDeclarationChecker
|
||||
import org.jetbrains.kotlin.resolve.getMultiTargetPlatform
|
||||
|
||||
fun ModuleDescriptor.commonModuleOrNull() = allDependencyModules.filter {
|
||||
it.getMultiTargetPlatform() == MultiTargetPlatform.Common && it.sourceKind == sourceKind
|
||||
}.firstOrNull()
|
||||
fun ModuleDescriptor.commonModuleOrNull(): ModuleDescriptor? {
|
||||
val sourceKind = sourceKind
|
||||
return allDependencyModules.firstOrNull { dependency ->
|
||||
dependency.getMultiTargetPlatform() == MultiTargetPlatform.Common && dependency.sourceKind == sourceKind
|
||||
}
|
||||
}
|
||||
|
||||
private val ModuleDescriptor.sourceKind: SourceKind
|
||||
get() = when (getCapability(ModuleInfo.Capability)) {
|
||||
is ModuleProductionSourceInfo -> SourceKind.PRODUCTION
|
||||
is ModuleTestSourceInfo -> SourceKind.TEST
|
||||
else -> SourceKind.NONE
|
||||
}
|
||||
|
||||
private enum class SourceKind { NONE, PRODUCTION, TEST }
|
||||
|
||||
fun ModuleDescriptor.hasDeclarationOf(descriptor: MemberDescriptor) = declarationOf(descriptor) != null
|
||||
|
||||
|
||||
Reference in New Issue
Block a user