[SLC] fix multifile-classes in multiplatform case

Multifile-class can contain not only files from the same
module, but also files from the common part.
This commit also fixes KotlinByModulesResolutionScopeProvider as
it should provide all transitive dependencies

^KT-64714 Fixed
This commit is contained in:
Dmitrii Gridin
2024-01-04 23:40:36 +01:00
committed by Space Team
parent fc519b2339
commit c14c12479c
5 changed files with 103 additions and 20 deletions
@@ -40,7 +40,7 @@ abstract class KotlinAsJavaSupportBase<TModule : Any>(protected val project: Pro
return when {
facadeFiles.none(KtFile::hasTopLevelCallables) -> null
facadeFiles.none(KtFile::isCompiled) -> {
LightClassCachedValue(createInstanceOfLightFacade(facadeFqName, facadeFiles), outOfBlockModificationTracker(file))
LightClassCachedValue(createInstanceOfLightFacade(facadeFqName, module, facadeFiles), outOfBlockModificationTracker(file))
}
facadeFiles.all(KtFile::isCompiled) -> {
@@ -68,6 +68,10 @@ abstract class KotlinAsJavaSupportBase<TModule : Any>(protected val project: Pro
protected abstract val TModule.contentSearchScope: GlobalSearchScope
protected abstract fun createInstanceOfLightFacade(facadeFqName: FqName, files: List<KtFile>): KtLightClassForFacade?
protected open fun createInstanceOfLightFacade(facadeFqName: FqName, module: TModule, files: List<KtFile>): KtLightClassForFacade? {
return createInstanceOfLightFacade(facadeFqName, files)
}
protected abstract fun createInstanceOfDecompiledLightFacade(facadeFqName: FqName, files: List<KtFile>): KtLightClassForFacade?
protected open fun projectWideOutOfBlockModificationTracker(): ModificationTracker {