[java] module dependency quick fixes on export qualifiers
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Tue, 13 Sep 2016 15:52:53 +0000 (18:52 +0300)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Tue, 13 Sep 2016 15:52:53 +0000 (18:52 +0300)
java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/ModuleHighlightUtil.java

index ee1b5ca2441f6af02c9ad18d268ddcb5ba22a6d9..3f1f0c36ed76ccad3c3d9b6212b31798c5a91908 100644 (file)
@@ -192,13 +192,7 @@ public class ModuleHighlightUtil {
       assert ref != null : refElement.getParent();
       PsiElement target = ref.resolve();
       if (!(target instanceof PsiJavaModule)) {
-        boolean missing = ref.multiResolve(true).length == 0;
-        String message = JavaErrorMessages.message(missing ? "module.not.found" : "module.not.on.path", refElement.getReferenceText());
-        HighlightInfo info = HighlightInfo.newHighlightInfo(HighlightInfoType.WRONG_REF).range(refElement).description(message).create();
-        if (!missing) {
-          factory().registerOrderEntryFixes(new QuickFixActionRegistrarImpl(info), ref);
-        }
-        return info;
+        return moduleResolveError(refElement, ref);
       }
       else if (target == container) {
         String message = JavaErrorMessages.message("module.cyclic.dependence", container.getModuleName());
@@ -256,8 +250,7 @@ public class ModuleHighlightUtil {
       assert ref != null : statement;
       PsiElement target = ref.resolve();
       if (!(target instanceof PsiJavaModule)) {
-        String message = JavaErrorMessages.message("module.not.found", refText);
-        results.add(HighlightInfo.newHighlightInfo(HighlightInfoType.WRONG_REF).range(refElement).description(message).create());
+        results.add(moduleResolveError(refElement, ref));
       }
       else if (!targets.add(refText)) {
         String message = JavaErrorMessages.message("module.duplicate.export", refText);
@@ -319,6 +312,16 @@ public class ModuleHighlightUtil {
     return null;
   }
 
+  private static HighlightInfo moduleResolveError(PsiJavaModuleReferenceElement refElement, PsiPolyVariantReference ref) {
+    boolean missing = ref.multiResolve(true).length == 0;
+    String message = JavaErrorMessages.message(missing ? "module.not.found" : "module.not.on.path", refElement.getReferenceText());
+    HighlightInfo info = HighlightInfo.newHighlightInfo(HighlightInfoType.WRONG_REF).range(refElement).description(message).create();
+    if (!missing) {
+      factory().registerOrderEntryFixes(new QuickFixActionRegistrarImpl(info), ref);
+    }
+    return info;
+  }
+
   private static QuickFixFactory factory() {
     return QuickFixFactory.getInstance();
   }