From c95a9950c25a09504ba2cb7f87469c729fc1647b Mon Sep 17 00:00:00 2001 From: Pavel Dolgov Date: Mon, 24 Apr 2017 15:57:25 +0300 Subject: [PATCH] Java: When searching for a class accessed with reflection try ResolveScope first to search in proper JDK/libraries (IDEA-171808) --- .../Java9ReflectionClassVisibilityInspection.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInspection/reflectiveAccess/Java9ReflectionClassVisibilityInspection.java b/java/java-impl/src/com/intellij/codeInspection/reflectiveAccess/Java9ReflectionClassVisibilityInspection.java index 3cedcdbacdfa..a3672c902895 100644 --- a/java/java-impl/src/com/intellij/codeInspection/reflectiveAccess/Java9ReflectionClassVisibilityInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/reflectiveAccess/Java9ReflectionClassVisibilityInspection.java @@ -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) {