diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheService.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheService.kt index 06f5a962183..0a01d0f8cec 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheService.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/caches/resolve/KotlinCacheService.kt @@ -179,9 +179,9 @@ public class KotlinCacheService(val project: Project) { } public fun getAnalysisResults(elements: Collection): AnalyzeExhaust { - if (elements.isEmpty()) return AnalyzeExhaust.EMPTY - val files = elements.map { it.getContainingJetFile() }.toSet() + assertAreInSameModule(files) + if (files.all { !ProjectRootsUtil.isInProjectSource(it) } // TODO: decide what to do with this // && files.all { it !is JetCodeFragment } @@ -193,6 +193,17 @@ public class KotlinCacheService(val project: Project) { return getGlobalCache(TargetPlatformDetector.getPlatform(firstFile)).getAnalysisResultsForElements(elements) } + private fun assertAreInSameModule(elements: Collection) { + if (elements.size <= 1) { + return + } + val thisInfo = elements.first().getModuleInfo() + elements.forEach { + val extraFileInfo = it.getModuleInfo() + assert(extraFileInfo == thisInfo, "All files under analysis should be in the same module.\nExpected: $thisInfo\nWas:${extraFileInfo}") + } + } + public fun get(extension: CacheExtension): T { return getGlobalCache(extension.platform)[extension] }