From dc20a6ca9538f6fa54043eccd8dfda588bc79d55 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 8 Jul 2020 09:58:13 +0700 Subject: [PATCH] InspectionDescriptionInfo#findExtension: avoid module dependency (EA-234173) GitOrigin-RevId: 2a187d85b6d938a60a542fdf6c787404b1d39f45 --- .../src/inspections/InspectionDescriptionInfo.java | 12 ++++++++---- .../InspectionAutomaticRenamerFactory.java | 8 ++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/plugins/devkit/devkit-core/src/inspections/InspectionDescriptionInfo.java b/plugins/devkit/devkit-core/src/inspections/InspectionDescriptionInfo.java index 43e363f8267e..e375545accb6 100644 --- a/plugins/devkit/devkit-core/src/inspections/InspectionDescriptionInfo.java +++ b/plugins/devkit/devkit-core/src/inspections/InspectionDescriptionInfo.java @@ -5,6 +5,7 @@ import com.intellij.codeInspection.InspectionEP; import com.intellij.codeInspection.InspectionProfileEntry; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Ref; import com.intellij.psi.*; @@ -28,7 +29,9 @@ import org.jetbrains.idea.devkit.dom.ExtensionPoint; import org.jetbrains.idea.devkit.dom.IdeaPlugin; import org.jetbrains.idea.devkit.inspections.quickfix.PluginDescriptorChooser; import org.jetbrains.idea.devkit.util.PsiUtil; -import org.jetbrains.uast.*; +import org.jetbrains.uast.UExpression; +import org.jetbrains.uast.UReferenceExpression; +import org.jetbrains.uast.UastUtils; import java.util.HashSet; import java.util.List; @@ -64,7 +67,7 @@ public final class InspectionDescriptionInfo { shortNameInXml = true; String className = psiClass.getQualifiedName(); if (className != null) { - Extension extension = findExtension(module, psiClass); + Extension extension = findExtension(psiClass); if (extension != null) { filename = extension.getXmlTag().getAttributeValue("shortName"); } @@ -86,9 +89,10 @@ public final class InspectionDescriptionInfo { } @Nullable - public static Extension findExtension(Module module, PsiClass psiClass) { + public static Extension findExtension(PsiClass psiClass) { return CachedValuesManager.getCachedValue(psiClass, () -> { - Extension extension = doFindExtension(module, psiClass); + Module module = ModuleUtilCore.findModuleForPsiElement(psiClass); + Extension extension = module == null ? null : doFindExtension(module, psiClass); return CachedValueProvider.Result .create(extension, extension == null ? PsiModificationTracker.MODIFICATION_COUNT : extension.getXmlTag()); }); diff --git a/plugins/devkit/devkit-core/src/refactoring/InspectionAutomaticRenamerFactory.java b/plugins/devkit/devkit-core/src/refactoring/InspectionAutomaticRenamerFactory.java index ab89728ea32a..73f3b746a92a 100644 --- a/plugins/devkit/devkit-core/src/refactoring/InspectionAutomaticRenamerFactory.java +++ b/plugins/devkit/devkit-core/src/refactoring/InspectionAutomaticRenamerFactory.java @@ -86,8 +86,8 @@ public class InspectionAutomaticRenamerFactory implements AutomaticRenamerFactor } @Nullable - private static XmlAttribute getInspectionShortNameAttribute(Module module, PsiClass inspectionClass) { - Extension extension = InspectionDescriptionInfo.findExtension(module, inspectionClass); + private static XmlAttribute getInspectionShortNameAttribute(PsiClass inspectionClass) { + Extension extension = InspectionDescriptionInfo.findExtension(inspectionClass); return extension == null ? null : extension.getXmlTag().getAttribute("shortName"); } @@ -130,7 +130,7 @@ public class InspectionAutomaticRenamerFactory implements AutomaticRenamerFactor return; } - XmlAttribute shortNameAttribute = getInspectionShortNameAttribute(module, inspectionClass); + XmlAttribute shortNameAttribute = getInspectionShortNameAttribute(inspectionClass); if (shortNameAttribute == null) { return; } @@ -199,7 +199,7 @@ public class InspectionAutomaticRenamerFactory implements AutomaticRenamerFactor continue; } - XmlAttribute shortNameAttribute = getInspectionShortNameAttribute(module, inspectionClass); + XmlAttribute shortNameAttribute = getInspectionShortNameAttribute(inspectionClass); if (shortNameAttribute == null) { continue; }