Limit search scope in DecompiledNavigationUtils
To avoid finding classes that are not under relevant roots
This commit is contained in:
+5
-1
@@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
@@ -27,11 +28,13 @@ import org.jetbrains.jet.lang.psi.JetDeclaration;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils;
|
||||
import org.jetbrains.jet.plugin.decompiler.DecompilerPackage;
|
||||
import org.jetbrains.jet.plugin.decompiler.JetClsFile;
|
||||
import org.jetbrains.jet.plugin.stubindex.JetSourceFilterScope;
|
||||
|
||||
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getFqName;
|
||||
|
||||
@@ -77,7 +80,8 @@ public final class DecompiledNavigationUtils {
|
||||
if (containerFqName == null) {
|
||||
return null;
|
||||
}
|
||||
VirtualFileFinder fileFinder = VirtualFileFinder.SERVICE.getInstance(project);
|
||||
GlobalSearchScope scopeToSearchIn = JetSourceFilterScope.kotlinSourceAndClassFiles(GlobalSearchScope.allScope(project), project);
|
||||
VirtualFileFinder fileFinder = VirtualFileFinderFactory.SERVICE.getInstance(project).create(scopeToSearchIn);
|
||||
VirtualFile virtualFile = fileFinder.findVirtualFileWithHeader(containerFqName);
|
||||
if (virtualFile == null) {
|
||||
return null;
|
||||
|
||||
+1
-3
@@ -28,7 +28,6 @@ import org.jetbrains.jet.plugin.stubindex.JetSuperClassIndex
|
||||
import org.jetbrains.jet.lang.resolve.*
|
||||
import java.util.Collections
|
||||
import org.jetbrains.jet.plugin.search.fileScope
|
||||
import org.jetbrains.jet.plugin.stubindex.JetSourceFilterScope
|
||||
|
||||
public open class KotlinDirectInheritorsSearcher() : QueryExecutorBase<PsiClass, DirectClassInheritorsSearch.SearchParameters>(true) {
|
||||
public override fun processQuery(queryParameters: DirectClassInheritorsSearch.SearchParameters, consumer: Processor<PsiClass>) {
|
||||
@@ -47,8 +46,7 @@ public open class KotlinDirectInheritorsSearcher() : QueryExecutorBase<PsiClass,
|
||||
if (scope == null) return
|
||||
|
||||
ApplicationManager.getApplication()?.runReadAction {
|
||||
val noLibrarySourceScope = JetSourceFilterScope.kotlinSourceAndClassFiles(scope, baseClass.getProject())
|
||||
JetSuperClassIndex.getInstance().get(name, baseClass.getProject(), noLibrarySourceScope).stream()
|
||||
JetSuperClassIndex.getInstance().get(name, baseClass.getProject(), scope).stream()
|
||||
.map { candidate -> JetSourceNavigationHelper.getOriginalPsiClassOrCreateLightClass(candidate)}
|
||||
.filterNotNull()
|
||||
.filter { candidate -> candidate.isInheritor(baseClass, false) }
|
||||
|
||||
Reference in New Issue
Block a user