mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
SSR: don't search index for java.lang default package (IDEA-200398)
This commit is contained in:
+15
-1
@@ -63,10 +63,24 @@ public class JavaCompilingVisitor extends JavaRecursiveElementWalkingVisitor {
|
||||
|
||||
@Override
|
||||
public void visitReferenceElement(PsiJavaCodeReferenceElement reference) {
|
||||
if (!handleWord(reference.getReferenceName(), myCompilingVisitor.getContext())) return;
|
||||
final String word = reference.getReferenceName();
|
||||
if (!handleWord(word, myCompilingVisitor.getContext())) return;
|
||||
if (reference.isQualified() && isClassFromJavaLangPackage(reference.resolve())) return;
|
||||
super.visitReferenceElement(reference);
|
||||
}
|
||||
|
||||
private boolean isClassFromJavaLangPackage(PsiElement target) {
|
||||
if (!(target instanceof PsiClass)) {
|
||||
return false;
|
||||
}
|
||||
final PsiFile file = target.getContainingFile();
|
||||
if (!(file instanceof PsiJavaFile)) {
|
||||
return false;
|
||||
}
|
||||
final PsiJavaFile javaFile = (PsiJavaFile)file;
|
||||
return "java.lang".equals(javaFile.getPackageName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitMethod(PsiMethod method) {
|
||||
if (!handleWord(method.getName(), myCompilingVisitor.getContext())) return;
|
||||
|
||||
+12
-4
@@ -22,6 +22,11 @@ public class OptimizedSearchScanTest extends StructuralSearchTestCase {
|
||||
return IdeaTestUtil.getMockJdk17();
|
||||
}
|
||||
|
||||
private String findWordsToBeUsedWhenSearchingFor(final String s) {
|
||||
findMatchesCount("{}", s);
|
||||
return PatternCompiler.getLastFindPlan();
|
||||
}
|
||||
|
||||
public void testClassByQName() {
|
||||
final String plan = findWordsToBeUsedWhenSearchingFor("A.f");
|
||||
assertEquals("[in code:f][in code:A]", plan);
|
||||
@@ -95,8 +100,11 @@ public class OptimizedSearchScanTest extends StructuralSearchTestCase {
|
||||
assertEquals("non-existing class name should be added to plan", "[in code:enum][in code:Zyxwvuts]", plan2);
|
||||
}
|
||||
|
||||
private String findWordsToBeUsedWhenSearchingFor(final String s) {
|
||||
findMatchesCount("{}", s);
|
||||
return PatternCompiler.getLastFindPlan();
|
||||
}
|
||||
public void testQualifiedReference() {
|
||||
final String plan = findWordsToBeUsedWhenSearchingFor("new java.lang.RuntimeException('_x)");
|
||||
assertEquals("[in code:new][in code:RuntimeException]", plan);
|
||||
|
||||
final String plan2 = findWordsToBeUsedWhenSearchingFor("new java.lang.reflect.InvocationTargetException('_x)");
|
||||
assertEquals("[in code:new][in code:InvocationTargetException][in code:reflect][in code:lang][in code:java]", plan2);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user