Added optimized PackageFragmentProvider#isEmpty(FqName)
This commit is contained in:
committed by
Space
parent
37055c5a09
commit
e511eec90e
+2
@@ -60,6 +60,8 @@ class IncrementalPackageFragmentProvider(
|
||||
override fun collectPackageFragments(fqName: FqName, packageFragments: MutableCollection<PackageFragmentDescriptor>) =
|
||||
packageFragments.addIfNotNull(fqNameToPackageFragment[fqName])
|
||||
|
||||
override fun isEmpty(fqName: FqName): Boolean = !fqNameToPackageFragment.containsKey(fqName)
|
||||
|
||||
override fun getPackageFragments(fqName: FqName): List<PackageFragmentDescriptor> {
|
||||
return listOfNotNull(fqNameToPackageFragment[fqName])
|
||||
}
|
||||
|
||||
+3
@@ -83,6 +83,9 @@ class OptionalAnnotationPackageFragmentProvider(
|
||||
override fun collectPackageFragments(fqName: FqName, packageFragments: MutableCollection<PackageFragmentDescriptor>) =
|
||||
packageFragments.addIfNotNull(packages[fqName])
|
||||
|
||||
override fun isEmpty(fqName: FqName): Boolean =
|
||||
!packages.containsKey(fqName)
|
||||
|
||||
override fun getPackageFragments(fqName: FqName): List<PackageFragmentDescriptor> =
|
||||
packages[fqName]?.let(::listOf).orEmpty()
|
||||
|
||||
|
||||
@@ -252,6 +252,12 @@ private class DelegatingPackageFragmentProvider<M : ModuleInfo>(
|
||||
resolverForProject.resolverForModuleDescriptor(module).packageFragmentProvider.collectPackageFragmentsOptimizedIfPossible(fqName, packageFragments)
|
||||
}
|
||||
|
||||
override fun isEmpty(fqName: FqName): Boolean {
|
||||
if (certainlyDoesNotExist(fqName)) return true
|
||||
|
||||
return resolverForProject.resolverForModuleDescriptor(module).packageFragmentProvider.isEmpty(fqName)
|
||||
}
|
||||
|
||||
override fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName> {
|
||||
if (certainlyDoesNotExist(fqName)) return emptyList()
|
||||
|
||||
|
||||
@@ -204,6 +204,12 @@ public class ResolveSession implements KotlinCodeAnalyzer, LazyClassContext {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty(@NotNull FqName fqName) {
|
||||
PackageMemberDeclarationProvider provider = declarationProviderFactory.getPackageMemberDeclarationProvider(fqName);
|
||||
return provider == null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public List<PackageFragmentDescriptor> getPackageFragments(@NotNull FqName fqName) {
|
||||
|
||||
Reference in New Issue
Block a user