diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/PackageIndexUtil.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/PackageIndexUtil.java index 882438b4cdf..d8bc49109d4 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/PackageIndexUtil.java +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/PackageIndexUtil.java @@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Ref; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.stubs.StubIndex; +import com.intellij.psi.stubs.StubIndexKey; import com.intellij.util.Processor; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.psi.JetFile; @@ -50,10 +51,19 @@ public final class PackageIndexUtil { @NotNull FqName packageFqName, @NotNull GlobalSearchScope searchScope, @NotNull Project project + ) { + return containsAny(packageFqName, searchScope, project, JetAllPackagesIndex.getInstance().getKey()); + } + + public static boolean containsAny( + @NotNull FqName packageFqName, + @NotNull GlobalSearchScope searchScope, + @NotNull Project project, + @NotNull StubIndexKey key ) { final Ref result = new Ref(false); StubIndex.getInstance().processElements( - JetAllPackagesIndex.getInstance().getKey(), packageFqName.asString(), project, searchScope, JetFile.class, + key, packageFqName.asString(), project, searchScope, JetFile.class, new Processor() { @Override public boolean process(JetFile file) { diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/SubpackagesIndexService.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/SubpackagesIndexService.kt index 17cc44c25fd..d7670858990 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/SubpackagesIndexService.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/SubpackagesIndexService.kt @@ -62,8 +62,9 @@ public class SubpackagesIndexService(private val project: Project) { if (candidateSubPackageShortName in existingSubPackagesShortNames) { continue } - //TODO: better check - val existsInThisScope = !JetExactPackagesIndex.getInstance().get(filesFqName.asString(), project, scope).isEmpty() + val existsInThisScope = PackageIndexUtil.containsAny( + filesFqName, scope, project, JetExactPackagesIndex.getInstance().getKey() + ) if (existsInThisScope) { existingSubPackagesShortNames.add(candidateSubPackageShortName) }