From 5b60b354162993fab201e32aa944d152a3c0dc65 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 19 May 2017 13:44:28 +0300 Subject: [PATCH] [java] fixes invalid highlighting in JDK module files (IDEA-172796) --- .../impl/analysis/ModuleHighlightUtil.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/ModuleHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/ModuleHighlightUtil.java index dc4da03fa5c0..956ee8ae577c 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/ModuleHighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/ModuleHighlightUtil.java @@ -298,19 +298,20 @@ public class ModuleHighlightUtil { static HighlightInfo checkPackageReference(@NotNull PsiPackageAccessibilityStatement statement) { PsiJavaCodeReferenceElement refElement = statement.getPackageReference(); if (refElement != null) { - PsiElement target = refElement.resolve(); Module module = findModule(refElement); - PsiDirectory[] directories = - target instanceof PsiPackage && module != null ? ((PsiPackage)target).getDirectories(module.getModuleScope(false)) : null; - String packageName = refText(refElement); - HighlightInfoType type = statement.getRole() == Role.OPENS ? HighlightInfoType.WARNING : HighlightInfoType.ERROR; - if (directories == null || directories.length == 0) { - String message = JavaErrorMessages.message("package.not.found", packageName); - return HighlightInfo.newHighlightInfo(type).range(refElement).descriptionAndTooltip(message).create(); - } - if (PsiUtil.isPackageEmpty(directories, packageName)) { - String message = JavaErrorMessages.message("package.is.empty", packageName); - return HighlightInfo.newHighlightInfo(type).range(refElement).descriptionAndTooltip(message).create(); + if (module != null) { + PsiElement target = refElement.resolve(); + PsiDirectory[] directories = target instanceof PsiPackage ? ((PsiPackage)target).getDirectories(module.getModuleScope(false)) : null; + String packageName = refText(refElement); + HighlightInfoType type = statement.getRole() == Role.OPENS ? HighlightInfoType.WARNING : HighlightInfoType.ERROR; + if (directories == null || directories.length == 0) { + String message = JavaErrorMessages.message("package.not.found", packageName); + return HighlightInfo.newHighlightInfo(type).range(refElement).descriptionAndTooltip(message).create(); + } + if (PsiUtil.isPackageEmpty(directories, packageName)) { + String message = JavaErrorMessages.message("package.is.empty", packageName); + return HighlightInfo.newHighlightInfo(type).range(refElement).descriptionAndTooltip(message).create(); + } } }