diff --git a/platform/lang-api/src/com/intellij/codeInspection/InspectionProfileEntry.java b/platform/lang-api/src/com/intellij/codeInspection/InspectionProfileEntry.java index 23b84012d09c..c5b31b8c6801 100644 --- a/platform/lang-api/src/com/intellij/codeInspection/InspectionProfileEntry.java +++ b/platform/lang-api/src/com/intellij/codeInspection/InspectionProfileEntry.java @@ -96,11 +96,11 @@ public abstract class InspectionProfileEntry { */ @NonNls @NotNull public String getShortName() { - return getShortName(getClass()); + return getShortName(getClass().getSimpleName()); } - public static String getShortName(Class aClass) { - return StringUtil.trimEnd(aClass.getSimpleName(), "Inspection"); + public static String getShortName(String className) { + return StringUtil.trimEnd(className, "Inspection"); } /** diff --git a/plugins/devkit/src/inspections/InspectionDescriptionNotFoundInspection.java b/plugins/devkit/src/inspections/InspectionDescriptionNotFoundInspection.java index 4eec3d104b40..85d1d884db60 100644 --- a/plugins/devkit/src/inspections/InspectionDescriptionNotFoundInspection.java +++ b/plugins/devkit/src/inspections/InspectionDescriptionNotFoundInspection.java @@ -16,10 +16,7 @@ package org.jetbrains.idea.devkit.inspections; -import com.intellij.codeInspection.InspectionManager; -import com.intellij.codeInspection.LocalQuickFix; -import com.intellij.codeInspection.ProblemDescriptor; -import com.intellij.codeInspection.ProblemHighlightType; +import com.intellij.codeInspection.*; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.project.Project; @@ -42,7 +39,7 @@ import java.util.List; * @author Konstantin Bulenkov */ public class InspectionDescriptionNotFoundInspection extends DevKitInspectionBase{ - @NonNls private static final String INSPECTION_PROFILE_ENTRY = "com.intellij.codeInspection.InspectionProfileEntry"; + @NonNls static final String INSPECTION_PROFILE_ENTRY = InspectionProfileEntry.class.getName(); @NonNls private static final String INSPECTION_DESCRIPTIONS = "inspectionDescriptions"; @Override @@ -57,9 +54,11 @@ public class InspectionDescriptionNotFoundInspection extends DevKitInspectionBas if (base == null || ! aClass.isInheritor(base, true) || isPathMethodsAreOverridden(aClass)) return null; - final PsiMethod method = findNearestMethod("getShortName", aClass); - if (method == null) return null; - final String filename = PsiUtil.getReturnedLiteral(method, aClass); + PsiMethod method = findNearestMethod("getShortName", aClass); + if (method != null && method.getContainingClass().getQualifiedName().equals(INSPECTION_PROFILE_ENTRY)) { + method = null; + } + final String filename = method == null ? InspectionProfileEntry.getShortName(aClass.getName()) : PsiUtil.getReturnedLiteral(method, aClass); if (filename == null) return null; @@ -83,8 +82,8 @@ public class InspectionDescriptionNotFoundInspection extends DevKitInspectionBas } @Nullable - private static PsiElement getProblemElement(PsiClass aClass, PsiMethod method) { - if (method.getContainingClass() == aClass) { + private static PsiElement getProblemElement(PsiClass aClass, @Nullable PsiMethod method) { + if (method != null && method.getContainingClass() == aClass) { return PsiUtil.getReturnedExpression(method); } else { return aClass.getNameIdentifier();