Added name filter to PackageFragmentProvider.getSubPackagesOf but do not know how to use it actually
This commit is contained in:
+2
-1
@@ -38,6 +38,7 @@ import org.jetbrains.jet.lang.resolve.java.JvmClassName
|
||||
import org.jetbrains.jet.descriptors.serialization.PackageData
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache
|
||||
import org.jetbrains.jet.lang.resolve.name.Name
|
||||
|
||||
public class IncrementalPackageFragmentProvider(
|
||||
sourceFiles: Collection<JetFile>,
|
||||
@@ -81,7 +82,7 @@ public class IncrementalPackageFragmentProvider(
|
||||
fqNamesToLoad.forEach { createPackageFragment(it) }
|
||||
}
|
||||
|
||||
override fun getSubPackagesOf(fqName: FqName): Collection<FqName> {
|
||||
override fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean): Collection<FqName> {
|
||||
return fqNameToSubFqNames[fqName].orEmpty()
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -24,6 +24,7 @@ import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider
|
||||
import org.jetbrains.jet.lang.descriptors.impl.MutablePackageFragmentDescriptor
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
||||
import java.util.HashMap
|
||||
import org.jetbrains.jet.lang.resolve.name.Name
|
||||
|
||||
public class MutablePackageFragmentProvider(public val module: ModuleDescriptor) : PackageFragmentProvider {
|
||||
|
||||
@@ -37,7 +38,7 @@ public class MutablePackageFragmentProvider(public val module: ModuleDescriptor)
|
||||
override fun getPackageFragments(fqName: FqName)
|
||||
= ContainerUtil.createMaybeSingletonList<PackageFragmentDescriptor>(fqNameToPackage.get(fqName))
|
||||
|
||||
override fun getSubPackagesOf(fqName: FqName) = subPackages[fqName]
|
||||
override fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean) = subPackages[fqName]
|
||||
|
||||
public fun getOrCreateFragment(fqName: FqName): MutablePackageFragmentDescriptor {
|
||||
if (!fqNameToPackage.containsKey(fqName)) {
|
||||
|
||||
@@ -143,7 +143,8 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<FqName> getSubPackagesOf(@NotNull FqName fqName) {
|
||||
public Collection<FqName> getSubPackagesOf(
|
||||
@NotNull FqName fqName, @NotNull Function1<? super Name, ? extends Boolean> nameFilter) {
|
||||
LazyPackageDescriptor packageDescriptor = getPackageFragment(fqName);
|
||||
if (packageDescriptor == null) {
|
||||
return Collections.emptyList();
|
||||
@@ -457,7 +458,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
||||
@NotNull LazyPackageDescriptor current
|
||||
) {
|
||||
result.add(current);
|
||||
for (FqName subPackage : packageFragmentProvider.getSubPackagesOf(current.getFqName())) {
|
||||
for (FqName subPackage : packageFragmentProvider.getSubPackagesOf(current.getFqName(), JetScope.ALL_NAME_FILTER)) {
|
||||
LazyPackageDescriptor fragment = getPackageFragment(subPackage);
|
||||
assert fragment != null : "Couldn't find fragment for " + subPackage;
|
||||
collectAllPackages(result, fragment);
|
||||
|
||||
@@ -211,7 +211,8 @@ public abstract class AbstractJetDiagnosticsTest extends BaseDiagnosticsTest {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<FqName> getSubPackagesOf(@NotNull FqName fqName) {
|
||||
public Collection<FqName> getSubPackagesOf(
|
||||
@NotNull FqName fqName, @NotNull Function1<? super Name, ? extends Boolean> nameFilter) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user