From 9db9750e672372602c0ff04513e088e6d55520c4 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 14 Nov 2017 18:23:01 +0300 Subject: [PATCH] Light classes: do not fail when classfile is in src root --- .../caches/resolve/IDELightClassGenerationSupport.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt index 8ee35ea826e..866d5aa5a22 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.caches.resolve +import com.intellij.formatting.blocks.split import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.* @@ -202,13 +203,15 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG facadeFiles: List, moduleInfo: IdeaModuleInfo ): List { - return if (moduleInfo is ModuleSourceInfo) { + val (clsFiles, sourceFiles) = facadeFiles.partition { it is KtClsFile } + val lightClassesForClsFacades = clsFiles.mapNotNull { createLightClassForDecompiledKotlinFile(it as KtClsFile) } + if (moduleInfo is ModuleSourceInfo && sourceFiles.isNotEmpty()) { val lightClassForFacade = KtLightClassForFacade.createForFacade( - psiManager, facadeFqName, moduleInfo.contentScope(), facadeFiles) - withFakeLightClasses(lightClassForFacade, facadeFiles) + psiManager, facadeFqName, moduleInfo.contentScope(), sourceFiles) + return withFakeLightClasses(lightClassForFacade, sourceFiles) + lightClassesForClsFacades } else { - facadeFiles.filterIsInstance().mapNotNull { createLightClassForDecompiledKotlinFile(it) } + return lightClassesForClsFacades } }