diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/inheritance/ExtendsAnnotationInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/inheritance/ExtendsAnnotationInspection.java index 9b62bb265846..1911b9e7a87e 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/inheritance/ExtendsAnnotationInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/inheritance/ExtendsAnnotationInspection.java @@ -16,6 +16,7 @@ package com.siyeh.ig.inheritance; import com.intellij.psi.*; +import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PsiUtil; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; @@ -66,7 +67,7 @@ public class ExtendsAnnotationInspection extends BaseInspection { @Override public void visitClass(@NotNull PsiClass aClass) { - if (aClass.isAnnotationType()) { + if (aClass.isAnnotationType() || InheritanceUtil.isInheritor(aClass, "javax.enterprise.util.AnnotationLiteral")) { return; } checkReferenceList(aClass.getExtendsList(), aClass); diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/ExtendsAnnotation.html b/plugins/InspectionGadgets/src/inspectionDescriptions/ExtendsAnnotation.html index 6d4375343c75..ca58bdefc8fe 100644 --- a/plugins/InspectionGadgets/src/inspectionDescriptions/ExtendsAnnotation.html +++ b/plugins/InspectionGadgets/src/inspectionDescriptions/ExtendsAnnotation.html @@ -1,8 +1,8 @@
Reports any classes declared as implementing or extending an annotation -interface. While it is legal to extend an annotation interface, it is nearly meaningless, -and discouraged. +interface. While it is legal to extend an annotation interface, it is often done by accident, +and the result won't be usable as an annotation.
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/inheritance/extends_annotation/ExtendsAnnotation.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/inheritance/extends_annotation/ExtendsAnnotation.java
index 1e200226c7ae..9c41ce49da8e 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/inheritance/extends_annotation/ExtendsAnnotation.java
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/inheritance/extends_annotation/ExtendsAnnotation.java
@@ -1,5 +1,20 @@
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import javax.enterprise.util.AnnotationLiteral;
public abstract class ExtendsAnnotation implements