From b61b45f7948392b252192bc3de99b4e06382e21f Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 26 Dec 2014 14:40:39 +0300 Subject: [PATCH] Renamed class + inherited NoSubpackagesInPackageScope from adapter class to get printScopeStructure implementation --- .../src/org/jetbrains/jet/lang/resolve/Importer.java | 2 +- ...PackageScope.kt => NoSubpackagesInPackageScope.kt} | 11 ++++++----- .../jet/lang/resolve/lazy/ScopeProvider.java | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) rename compiler/frontend/src/org/jetbrains/jet/lang/resolve/{ClassesInPackageScope.kt => NoSubpackagesInPackageScope.kt} (79%) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/Importer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/Importer.java index 48878825385..48770f6078d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/Importer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/Importer.java @@ -86,7 +86,7 @@ public interface Importer { protected void importAllUnderDeclaration(@NotNull DeclarationDescriptor descriptor, @NotNull PlatformToKotlinClassMap platformToKotlinClassMap) { List scopesToImport = new ArrayList(3); if (descriptor instanceof PackageViewDescriptor) { - scopesToImport.add(new ClassesInPackageScope((PackageViewDescriptor) descriptor)); + scopesToImport.add(new NoSubpackagesInPackageScope((PackageViewDescriptor) descriptor)); } else if (descriptor instanceof ClassDescriptor && ((ClassDescriptor) descriptor).getKind() != ClassKind.OBJECT) { ClassDescriptor classDescriptor = (ClassDescriptor) descriptor; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ClassesInPackageScope.kt b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/NoSubpackagesInPackageScope.kt similarity index 79% rename from compiler/frontend/src/org/jetbrains/jet/lang/resolve/ClassesInPackageScope.kt rename to compiler/frontend/src/org/jetbrains/jet/lang/resolve/NoSubpackagesInPackageScope.kt index 143d9a7841e..325414d028d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ClassesInPackageScope.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/NoSubpackagesInPackageScope.kt @@ -16,24 +16,25 @@ package org.jetbrains.jet.lang.resolve -import org.jetbrains.jet.lang.resolve.scopes.JetScope import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor import org.jetbrains.jet.lang.resolve.name.Name import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter +import org.jetbrains.jet.lang.resolve.scopes.AbstractScopeAdapter +import org.jetbrains.jet.lang.resolve.scopes.JetScope -class ClassesInPackageScope(packageDescriptor: PackageViewDescriptor) : JetScope by packageDescriptor.getMemberScope() { - private val memberScope = packageDescriptor.getMemberScope() +class NoSubpackagesInPackageScope(packageDescriptor: PackageViewDescriptor) : AbstractScopeAdapter() { + override val workerScope: JetScope = packageDescriptor.getMemberScope() override fun getPackage(name: Name): PackageViewDescriptor? = null override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection { val modifiedFilter = kindFilter.withoutKinds(DescriptorKindFilter.PACKAGES_MASK) if (modifiedFilter.kindMask == 0) return listOf() - return memberScope.getDescriptors(modifiedFilter, nameFilter).filter { it !is PackageViewDescriptor } + return workerScope.getDescriptors(modifiedFilter, nameFilter).filter { it !is PackageViewDescriptor } } override fun getOwnDeclaredDescriptors(): Collection { - return memberScope.getOwnDeclaredDescriptors().filter { it !is PackageViewDescriptor } + return workerScope.getOwnDeclaredDescriptors().filter { it !is PackageViewDescriptor } } } \ No newline at end of file diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java index 59db2f4f033..228aeffe70e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/ScopeProvider.java @@ -23,7 +23,7 @@ import kotlin.Function1; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.ClassesInPackageScope; +import org.jetbrains.jet.lang.resolve.NoSubpackagesInPackageScope; import org.jetbrains.jet.lang.resolve.ImportPath; import org.jetbrains.jet.lang.resolve.JetModuleUtil; import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace; @@ -98,7 +98,7 @@ public class ScopeProvider { public JetScope[] collectFileScopes(@NotNull JetFile file) { List list = new ArrayList(); - list.add(new ClassesInPackageScope(getFilePackageDescriptor(file))); + list.add(new NoSubpackagesInPackageScope(getFilePackageDescriptor(file))); list.add(JetModuleUtil.getSubpackagesOfRootScope(resolveSession.getModuleDescriptor())); list.add(explicitImportScopes.invoke(file)); list.addAll(additionalFileScopeProvider.scopes(file));