diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassFinderImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassFinderImpl.java index 96758cfd032..9f0253c467f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassFinderImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassFinderImpl.java @@ -96,6 +96,6 @@ public class JavaClassFinderImpl implements JavaClassFinder { @Override public JavaPackage findPackage(@NotNull FqName fqName) { PsiPackage psiPackage = javaFacade.findPackage(fqName.asString()); - return psiPackage == null ? null : new JavaPackageImpl(psiPackage); + return psiPackage == null ? null : new JavaPackageImpl(psiPackage, javaSearchScope); } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java index 46dce7ce82c..529a57032d9 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaElementCollectionFromPsiArrayUtil.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.lang.resolve.java.structure.impl; import com.intellij.psi.*; +import com.intellij.psi.search.GlobalSearchScope; import kotlin.Function1; import kotlin.KotlinPackage; import org.jetbrains.annotations.NotNull; @@ -46,14 +47,6 @@ public class JavaElementCollectionFromPsiArrayUtil { } }; - private static final Factory PACKAGES = new Factory() { - @NotNull - @Override - public JavaPackage create(@NotNull PsiPackage psiPackage) { - return new JavaPackageImpl(psiPackage); - } - }; - private static final Factory METHODS = new Factory() { @NotNull @Override @@ -164,8 +157,14 @@ public class JavaElementCollectionFromPsiArrayUtil { } @NotNull - public static Collection packages(@NotNull PsiPackage[] packages) { - return convert(packages, Factories.PACKAGES); + public static Collection packages(@NotNull PsiPackage[] packages, @NotNull final GlobalSearchScope scope) { + return convert(packages, new Factory() { + @NotNull + @Override + public JavaPackage create(@NotNull PsiPackage aPackage) { + return new JavaPackageImpl(aPackage, scope); + } + }); } @NotNull diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaPackageImpl.kt b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaPackageImpl.kt index 0944b54e0bd..be51bd32c90 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaPackageImpl.kt +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/impl/JavaPackageImpl.kt @@ -24,18 +24,19 @@ import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementCollectionF import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaElementCollectionFromPsiArrayUtil.packages import org.jetbrains.jet.lang.resolve.java.structure.JavaClass import org.jetbrains.jet.lang.resolve.name.Name +import com.intellij.psi.search.GlobalSearchScope -public class JavaPackageImpl(psiPackage: PsiPackage) : JavaElementImpl(psiPackage), JavaPackage { +public class JavaPackageImpl(psiPackage: PsiPackage, private val scope: GlobalSearchScope) : JavaElementImpl(psiPackage), JavaPackage { override fun getClasses(nameFilter: (Name) -> Boolean): MutableCollection { - val psiClasses = getPsi().getClasses().filter { + val psiClasses = getPsi().getClasses(scope).filter { val name = it.getName() name != null && nameFilter(Name.identifier(name)) } return classes(psiClasses) } - override fun getSubPackages() = packages(getPsi().getSubPackages()) + override fun getSubPackages() = packages(getPsi().getSubPackages(scope), scope) override fun getFqName() = FqName(getPsi().getQualifiedName()) }