Remove direct usages of ModuleDescriptor#getPackageFragmentProvider()
This commit is contained in:
@@ -17,22 +17,18 @@
|
||||
package org.jetbrains.kotlin.descriptors
|
||||
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.impl.PackageViewDescriptorImpl
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap
|
||||
import org.jetbrains.kotlin.resolve.ImportPath
|
||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||
|
||||
public trait ModuleDescriptor : DeclarationDescriptor, ModuleParameters {
|
||||
public fun getPackage(fqName: FqName): PackageViewDescriptor?
|
||||
public fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
|
||||
|
||||
override fun getContainingDeclaration(): DeclarationDescriptor? = null
|
||||
|
||||
public fun getPackageFragmentProvider(): PackageFragmentProvider
|
||||
|
||||
public fun getPackage(fqName: FqName): PackageViewDescriptor? {
|
||||
val fragments = getPackageFragmentProvider().getPackageFragments(fqName)
|
||||
return if (!fragments.isEmpty()) PackageViewDescriptorImpl(this, fqName, fragments) else null
|
||||
}
|
||||
|
||||
public val builtIns: KotlinBuiltIns
|
||||
|
||||
public fun isFriend(other: ModuleDescriptor): Boolean
|
||||
|
||||
@@ -22,9 +22,6 @@ import org.jetbrains.kotlin.name.Name
|
||||
public trait PackageFragmentProvider {
|
||||
public fun getPackageFragments(fqName: FqName): List<PackageFragmentDescriptor>
|
||||
|
||||
/**
|
||||
* @return declared subpackages of a package with the FQ name given by [fqName]
|
||||
*/
|
||||
public fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName>
|
||||
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.name.FqName;
|
||||
import org.jetbrains.kotlin.resolve.scopes.JetScope;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface PackageViewDescriptor extends DeclarationDescriptor {
|
||||
@Override
|
||||
@Nullable
|
||||
@@ -34,4 +36,7 @@ public interface PackageViewDescriptor extends DeclarationDescriptor {
|
||||
|
||||
@NotNull
|
||||
ModuleDescriptor getModule();
|
||||
|
||||
@NotNull
|
||||
List<PackageFragmentDescriptor> getFragments();
|
||||
}
|
||||
|
||||
@@ -20,7 +20,9 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ModuleParameters
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
|
||||
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
import java.util.ArrayList
|
||||
@@ -89,7 +91,14 @@ public class ModuleDescriptorImpl(
|
||||
packageFragmentProviderForModuleContent = providerForModuleContent
|
||||
}
|
||||
|
||||
override fun getPackageFragmentProvider() = packageFragmentProviderForWholeModuleWithDependencies
|
||||
override fun getPackage(fqName: FqName): PackageViewDescriptor? {
|
||||
val fragments = packageFragmentProviderForWholeModuleWithDependencies.getPackageFragments(fqName)
|
||||
return if (!fragments.isEmpty()) PackageViewDescriptorImpl(this, fqName, fragments) else null
|
||||
}
|
||||
|
||||
override fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName> {
|
||||
return packageFragmentProviderForWholeModuleWithDependencies.getSubPackagesOf(fqName, nameFilter)
|
||||
}
|
||||
|
||||
private val friendModules = LinkedHashSet<ModuleDescriptor>()
|
||||
|
||||
|
||||
+3
-1
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||
public class PackageViewDescriptorImpl(
|
||||
private val module: ModuleDescriptor,
|
||||
private val fqName: FqName,
|
||||
fragments: List<PackageFragmentDescriptor>
|
||||
private val fragments: List<PackageFragmentDescriptor>
|
||||
) : DeclarationDescriptorImpl(Annotations.EMPTY, fqName.shortNameOrSpecial()), PackageViewDescriptor {
|
||||
private val memberScope: JetScope = run {
|
||||
assert(fragments.isNotEmpty()) { "$fqName in module" }
|
||||
@@ -47,6 +47,8 @@ public class PackageViewDescriptorImpl(
|
||||
|
||||
override fun getModule(): ModuleDescriptor = module
|
||||
|
||||
override fun getFragments() = fragments
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (javaClass != other?.javaClass) return false
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ public class SubpackagesScope(private val containingDeclaration: PackageViewDesc
|
||||
nameFilter: (Name) -> Boolean): Collection<DeclarationDescriptor> {
|
||||
if (!kindFilter.acceptsKinds(DescriptorKindFilter.PACKAGES_MASK)) return listOf()
|
||||
|
||||
val subFqNames = containingDeclaration.getModule().getPackageFragmentProvider().getSubPackagesOf(containingDeclaration.getFqName(), nameFilter)
|
||||
val subFqNames = containingDeclaration.getModule().getSubPackagesOf(containingDeclaration.getFqName(), nameFilter)
|
||||
val result = ArrayList<DeclarationDescriptor>(subFqNames.size())
|
||||
for (subFqName in subFqNames) {
|
||||
val shortName = subFqName.shortName()
|
||||
|
||||
Reference in New Issue
Block a user