From 74ad6b1410af9372b5fece16a8fb9d7f8145270a Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 29 Sep 2016 12:57:40 +0300 Subject: [PATCH] Drop obsolete logic related to obsolete package parts Filtering out obsolete package parts in incremental compilation was necessary before the big refactoring of package parts, when package parts had been compiled together into a package class --- .../IncrementalPackageFragmentProvider.kt | 11 ++--------- .../IncrementalPackagePartProvider.kt | 17 +++++------------ .../resolve/jvm/TopDownAnalyzerFacadeForJVM.kt | 2 +- 3 files changed, 8 insertions(+), 22 deletions(-) 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) )