diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/IDEKotlinAsJavaFirSupport.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/IDEKotlinAsJavaFirSupport.kt index 90475c4977a..ae843a2a955 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/IDEKotlinAsJavaFirSupport.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/IDEKotlinAsJavaFirSupport.kt @@ -27,7 +27,6 @@ import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtScript -import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty class IDEKotlinAsJavaFirSupport(private val project: Project) : KotlinAsJavaSupport() { override fun findClassOrObjectDeclarationsInPackage( @@ -91,13 +90,15 @@ class IDEKotlinAsJavaFirSupport(private val project: Project) : KotlinAsJavaSupp override fun getLightClassForScript(script: KtScript): KtLightClass = error("Should not be called") - override fun getFacadeClasses(facadeFqName: FqName, scope: GlobalSearchScope): Collection = - //TODO Split by modules - findFilesForFacade(facadeFqName, scope).ifNotEmpty { - listOfNotNull( - project.getService(SymbolLightClassFacadeCache::class.java).getOrCreateSymbolLightFacade(this.toList(), facadeFqName) - ) - } ?: emptyList() + override fun getFacadeClasses(facadeFqName: FqName, scope: GlobalSearchScope): Collection { + val filesByModule = findFilesForFacade(facadeFqName, scope).groupBy { it.getKtModule(project) } + + val lightClassFacadeCache = project.getService(SymbolLightClassFacadeCache::class.java) + + return filesByModule.values.mapNotNull { files -> + lightClassFacadeCache.getOrCreateSymbolLightFacade(files, facadeFqName) + } + } override fun getScriptClasses(scriptFqName: FqName, scope: GlobalSearchScope): Collection = error("Should not be called")