From fd9350a030b766c61a1cbb3eddf7e6a7c308536a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20C=C3=A9bron?= Date: Sat, 1 Jul 2017 17:07:54 +0200 Subject: [PATCH] [devkit] ComponentNotRegisteredInspection: performance --- .../ComponentNotRegisteredInspection.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/plugins/devkit/src/inspections/ComponentNotRegisteredInspection.java b/plugins/devkit/src/inspections/ComponentNotRegisteredInspection.java index 78513d3b4553..e6fdd62f55c4 100644 --- a/plugins/devkit/src/inspections/ComponentNotRegisteredInspection.java +++ b/plugins/devkit/src/inspections/ComponentNotRegisteredInspection.java @@ -85,31 +85,23 @@ public class ComponentNotRegisteredInspection extends DevKitInspectionBase { @Nullable public ProblemDescriptor[] checkClass(@NotNull PsiClass checkedClass, @NotNull InspectionManager manager, boolean isOnTheFly) { - PsiFile psiFile = checkedClass.getContainingFile(); PsiIdentifier classIdentifier = checkedClass.getNameIdentifier(); - if (checkedClass.getQualifiedName() != null && - classIdentifier != null && - psiFile != null && - psiFile.getVirtualFile() != null && + if (classIdentifier != null && + checkedClass.getQualifiedName() != null && + checkedClass.getContainingFile().getVirtualFile() != null && !checkedClass.hasModifierProperty(PsiModifier.ABSTRACT) && - !checkedClass.isEnum()) { - if (PsiUtil.isInnerClass(checkedClass)) { - // don't check inner classes (make this an option?) - return null; - } + !checkedClass.isEnum() && + !PsiUtil.isInnerClass(checkedClass)) { GlobalSearchScope scope = checkedClass.getResolveScope(); - if (CHECK_ACTIONS) { + if (shouldCheckActionClass(checkedClass)) { PsiClass actionClass = JavaPsiFacade.getInstance(manager.getProject()).findClass(AnAction.class.getName(), scope); if (actionClass == null) { // stop if action class cannot be found (non-devkit module/project) return null; } if (checkedClass.isInheritor(actionClass, true)) { - if (IGNORE_NON_PUBLIC && !checkedClass.hasModifierProperty(PsiModifier.PUBLIC)) { - return null; - } if (!isActionRegistered(checkedClass) && canFix(checkedClass)) { LocalQuickFix fix = new RegisterActionFix(org.jetbrains.idea.devkit.util.PsiUtil.createPointer(checkedClass)); ProblemDescriptor problem = @@ -169,6 +161,12 @@ public class ComponentNotRegisteredInspection extends DevKitInspectionBase { return ContainerUtil.getFirstItem(types); } + private boolean shouldCheckActionClass(PsiClass psiClass) { + if (!CHECK_ACTIONS) return false; + if (IGNORE_NON_PUBLIC && !psiClass.hasModifierProperty(PsiModifier.PUBLIC)) return false; + return true; + } + private static boolean isActionRegistered(PsiClass actionClass) { final PsiClass registrationType = findRegistrationType(actionClass, RegistrationCheckerUtil.RegistrationType.ACTION); if (registrationType != null) {