Add more investigation info to diagnoseUnknownModuleInfo

Relates to #EA-220276
This commit is contained in:
Vladimir Dolzhenko
2020-01-07 11:36:36 +01:00
parent 2f953f5049
commit be65eed801
@@ -8,15 +8,12 @@ package org.jetbrains.kotlin.analyzer
import com.intellij.openapi.util.ModificationTracker import com.intellij.openapi.util.ModificationTracker
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.context.ProjectContext import org.jetbrains.kotlin.context.ProjectContext
import org.jetbrains.kotlin.context.withModule
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.psi.KtFile
abstract class AbstractResolverForProject<M : ModuleInfo>( abstract class AbstractResolverForProject<M : ModuleInfo>(
private val debugName: String, private val debugName: String,
@@ -126,7 +123,7 @@ abstract class AbstractResolverForProject<M : ModuleInfo>(
} }
override fun diagnoseUnknownModuleInfo(infos: List<ModuleInfo>): Nothing { override fun diagnoseUnknownModuleInfo(infos: List<ModuleInfo>): Nothing {
DiagnoseUnknownModuleInfoReporter.report(name, infos) DiagnoseUnknownModuleInfoReporter.report(name, infos, allModules)
} }
private fun checkModuleIsCorrect(moduleInfo: M) { private fun checkModuleIsCorrect(moduleInfo: M) {
@@ -207,8 +204,8 @@ private class DelegatingPackageFragmentProvider<M : ModuleInfo>(
} }
private object DiagnoseUnknownModuleInfoReporter { private object DiagnoseUnknownModuleInfoReporter {
fun report(name: String, infos: List<ModuleInfo>): Nothing { fun report(name: String, infos: List<ModuleInfo>, allModules: Collection<ModuleInfo>): Nothing {
val message = "$name does not know how to resolve $infos" val message = "$name does not know how to resolve $infos, allModules: $allModules"
when { when {
name.contains(ResolverForProject.resolverForSdkName) -> errorInSdkResolver(message) name.contains(ResolverForProject.resolverForSdkName) -> errorInSdkResolver(message)
name.contains(ResolverForProject.resolverForLibrariesName) -> errorInLibrariesResolver(message) name.contains(ResolverForProject.resolverForLibrariesName) -> errorInLibrariesResolver(message)