Java: When searching for a class accessed with reflection try ResolveScope first to search in proper JDK/libraries (IDEA-171808)

This commit is contained in:
Pavel Dolgov
2017-04-24 15:59:02 +03:00
parent c5cf8d7739
commit c95a9950c2
@@ -70,7 +70,11 @@ public class Java9ReflectionClassVisibilityInspection extends BaseJavaBatchLocal
final String className = computeConstantExpression(classNameArgument, String.class);
if (className != null) {
final Project project = holder.getProject();
final PsiClass psiClass = JavaPsiFacade.getInstance(project).findClass(className, GlobalSearchScope.allScope(project));
final JavaPsiFacade facade = JavaPsiFacade.getInstance(project);
PsiClass psiClass = facade.findClass(className, holder.getFile().getResolveScope());
if (psiClass == null) {
psiClass = facade.findClass(className, GlobalSearchScope.allScope(project));
}
if (psiClass != null) {
final PsiJavaModule otherModule = JavaModuleGraphUtil.findDescriptorByElement(psiClass);
if (otherModule != null && otherModule != javaModule) {