diff --git a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt index 7de4d434371..42350171304 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt @@ -166,6 +166,8 @@ class ResolverForProjectImpl( return@compute delegateResolver.resolverForModuleDescriptor(descriptor) } resolverByModuleDescriptor.getOrPut(descriptor) { + checkModuleIsCorrect(module) + ResolverForModuleComputationTracker.getInstance(projectContext.project)?.onResolverComputed(module) analyzerFacade(module).createResolverForModule( @@ -184,15 +186,19 @@ class ResolverForProjectImpl( } override fun descriptorForModule(moduleInfo: M): ModuleDescriptorImpl { - if (!isCorrectModuleInfo(moduleInfo)) { - diagnoseUnknownModuleInfo(listOf(moduleInfo)) - } + checkModuleIsCorrect(moduleInfo) return doGetDescriptorForModule(moduleInfo) } override fun diagnoseUnknownModuleInfo(infos: List) = throw AssertionError("$name does not know how to resolve $infos") + private fun checkModuleIsCorrect(moduleInfo: M) { + if (!isCorrectModuleInfo(moduleInfo)) { + diagnoseUnknownModuleInfo(listOf(moduleInfo)) + } + } + private fun doGetDescriptorForModule(module: M): ModuleDescriptorImpl { if (module in modules) { return projectContext.storageManager.compute {