diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt index 68ab95eab20..6384523d7df 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackageFragmentProvider.kt @@ -49,17 +49,10 @@ class IncrementalPackageFragmentProvider( val incrementalCache: IncrementalCache, val target: TargetId ) : PackageFragmentProvider { - - companion object { - fun fqNamesToLoad(obsoletePackageParts: Collection, sourceFiles: Collection): Set = - (obsoletePackageParts.map { JvmClassName.byInternalName(it).packageFqName } - + PackagePartClassUtils.getFilesWithCallables(sourceFiles).map { it.packageFqName }).toSet() - } - val obsoletePackageParts = incrementalCache.getObsoletePackageParts().toSet() val fqNameToSubFqNames = MultiMap() val fqNameToPackageFragment = HashMap() - val fqNamesToLoad: Set = fqNamesToLoad(obsoletePackageParts, sourceFiles) + val fqNamesToLoad: Set = PackagePartClassUtils.getFilesWithCallables(sourceFiles).map { it.packageFqName }.toSet() init { fun createPackageFragment(fqName: FqName) { @@ -76,7 +69,7 @@ class IncrementalPackageFragmentProvider( fqNameToPackageFragment[fqName] = IncrementalPackageFragment(fqName) } - fqNamesToLoad.forEach { createPackageFragment(it) } + fqNamesToLoad.forEach(::createPackageFragment) } override fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection { diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackagePartProvider.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackagePartProvider.kt index eb214851bea..2f0cb632a6b 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackagePartProvider.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/incremental/IncrementalPackagePartProvider.kt @@ -21,31 +21,24 @@ import org.jetbrains.kotlin.load.kotlin.ModuleMapping import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCache import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents import org.jetbrains.kotlin.modules.TargetId -import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.storage.StorageManager internal class IncrementalPackagePartProvider private constructor( private val parent: PackagePartProvider, - sourceFiles: Collection, incrementalCaches: List, storageManager: StorageManager ) : PackagePartProvider { private val moduleMappings = storageManager.createLazyValue { incrementalCaches.map { ModuleMapping.create(it.getModuleMappingData()) } } - private val fqNamesToIgnore = - incrementalCaches.flatMap { IncrementalPackageFragmentProvider.fqNamesToLoad(it.getObsoletePackageParts(), sourceFiles).map { it.asString() } } override fun findPackageParts(packageFqName: String): List { - val packagePartsFromParent = parent.findPackageParts(packageFqName) - if (packageFqName in fqNamesToIgnore) return packagePartsFromParent - - val packagePartsFromCompiled = moduleMappings().mapNotNull { it.findPackageParts(packageFqName) }.flatMap { it.parts } - return (packagePartsFromCompiled + packagePartsFromParent).distinct() + return (moduleMappings().mapNotNull { it.findPackageParts(packageFqName) }.flatMap { it.parts } + + parent.findPackageParts(packageFqName)).distinct() } companion object { - @JvmStatic fun create( + @JvmStatic + fun create( parent: PackagePartProvider, - sourceFiles: Collection, targets: List?, incrementalCompilationComponents: IncrementalCompilationComponents?, storageManager: StorageManager @@ -53,7 +46,7 @@ internal class IncrementalPackagePartProvider private constructor( if (targets == null || incrementalCompilationComponents == null) return parent val incrementalCaches = targets.map { incrementalCompilationComponents.getIncrementalCache(it) } - return IncrementalPackagePartProvider(parent, sourceFiles, incrementalCaches, storageManager) + return IncrementalPackagePartProvider(parent, incrementalCaches, storageManager) } } } diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.kt index 79a55e73637..66a0bed81af 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/TopDownAnalyzerFacadeForJVM.kt @@ -82,7 +82,7 @@ object TopDownAnalyzerFacadeForJVM { FileBasedDeclarationProviderFactory(storageManager, files), GlobalSearchScope.allScope(project), lookupTracker, - IncrementalPackagePartProvider.create(packagePartProvider, files, targetIds, incrementalComponents, storageManager), + IncrementalPackagePartProvider.create(packagePartProvider, targetIds, incrementalComponents, storageManager), configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT), ModuleClassResolverImpl(resolverByClass) )