Light classes: do not fail when classfile is in src root
This commit is contained in:
+7
-4
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.caches.resolve
|
package org.jetbrains.kotlin.idea.caches.resolve
|
||||||
|
|
||||||
|
import com.intellij.formatting.blocks.split
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
@@ -202,13 +203,15 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
|
|||||||
facadeFiles: List<KtFile>,
|
facadeFiles: List<KtFile>,
|
||||||
moduleInfo: IdeaModuleInfo
|
moduleInfo: IdeaModuleInfo
|
||||||
): List<PsiClass> {
|
): List<PsiClass> {
|
||||||
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(
|
val lightClassForFacade = KtLightClassForFacade.createForFacade(
|
||||||
psiManager, facadeFqName, moduleInfo.contentScope(), facadeFiles)
|
psiManager, facadeFqName, moduleInfo.contentScope(), sourceFiles)
|
||||||
withFakeLightClasses(lightClassForFacade, facadeFiles)
|
return withFakeLightClasses(lightClassForFacade, sourceFiles) + lightClassesForClsFacades
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
facadeFiles.filterIsInstance<KtClsFile>().mapNotNull { createLightClassForDecompiledKotlinFile(it) }
|
return lightClassesForClsFacades
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user