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
This commit is contained in:
+2
-9
@@ -49,17 +49,10 @@ class IncrementalPackageFragmentProvider(
|
||||
val incrementalCache: IncrementalCache,
|
||||
val target: TargetId
|
||||
) : PackageFragmentProvider {
|
||||
|
||||
companion object {
|
||||
fun fqNamesToLoad(obsoletePackageParts: Collection<String>, sourceFiles: Collection<KtFile>): Set<FqName> =
|
||||
(obsoletePackageParts.map { JvmClassName.byInternalName(it).packageFqName }
|
||||
+ PackagePartClassUtils.getFilesWithCallables(sourceFiles).map { it.packageFqName }).toSet()
|
||||
}
|
||||
|
||||
val obsoletePackageParts = incrementalCache.getObsoletePackageParts().toSet()
|
||||
val fqNameToSubFqNames = MultiMap<FqName, FqName>()
|
||||
val fqNameToPackageFragment = HashMap<FqName, PackageFragmentDescriptor>()
|
||||
val fqNamesToLoad: Set<FqName> = fqNamesToLoad(obsoletePackageParts, sourceFiles)
|
||||
val fqNamesToLoad: Set<FqName> = 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<FqName> {
|
||||
|
||||
+5
-12
@@ -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<KtFile>,
|
||||
incrementalCaches: List<IncrementalCache>,
|
||||
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<String> {
|
||||
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<KtFile>,
|
||||
targets: List<TargetId>?,
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user