Correct logic for enabling DevKit inspections only in plugin code
authorDmitry Jemerov <yole@jetbrains.com>
Thu, 13 Aug 2020 14:58:21 +0000 (16:58 +0200)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Thu, 13 Aug 2020 14:59:26 +0000 (14:59 +0000)
PsiUtil.isPluginModule() returns true for most platform modules, so the passed predicate was effectively ignored.

GitOrigin-RevId: db93c20539b72cb80a15b50181a55f3e912e1371

plugins/devkit/devkit-core/src/inspections/DevKitInspectionBase.java

index 45950657f7e0df2cc60773a27b3e33ef82260df2..21284215b9301ee1dba83626242bf1a23ab05af4 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package org.jetbrains.idea.devkit.inspections;
 
 import com.intellij.codeInspection.AbstractBaseJavaLocalInspectionTool;
@@ -40,9 +40,13 @@ public abstract class DevKitInspectionBase extends AbstractBaseJavaLocalInspecti
 
   static boolean isAllowed(@NotNull ProblemsHolder holder,
                            @NotNull Predicate<? super ProblemsHolder> predicate) {
-    return ApplicationManager.getApplication().isUnitTestMode() /* always run in tests */ ||
-           (PsiUtil.isIdeaProject(holder.getProject()) && predicate.test(holder)) ||
-           isInPluginModule(holder);
+    if (ApplicationManager.getApplication().isUnitTestMode()) return true;  /* always run in tests */
+    if (PsiUtil.isIdeaProject(holder.getProject())) {
+      return predicate.test(holder);
+    }
+    else {
+      return isInPluginModule(holder);
+    }
   }
 
   private static boolean isInPluginModule(@NotNull ProblemsHolder holder) {