diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/javadoc/MissingDeprecatedAnnotationInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/javadoc/MissingDeprecatedAnnotationInspection.java index 5bc84544e7e2..d5ae73b9cd0c 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/javadoc/MissingDeprecatedAnnotationInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/javadoc/MissingDeprecatedAnnotationInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2014 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2015 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; import com.siyeh.ig.BaseInspectionVisitor; import com.siyeh.ig.InspectionGadgetsFix; +import com.siyeh.ig.psiutils.MethodUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -133,7 +134,14 @@ public class MissingDeprecatedAnnotationInspection extends BaseInspection { return; } if (hasDeprecatedAnnotation(method)) { - if (warnOnMissingJavadoc && !hasDeprecatedComment(method, true)) { + if (warnOnMissingJavadoc) { + PsiMethod m = method; + while (m != null) { + if (hasDeprecatedComment(m, true)) { + return; + } + m = MethodUtils.getSuper(m); + } registerMethodError(method, Boolean.FALSE); } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/javadoc/missing_deprecated_annotation/MissingDeprecatedAnnotation.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/javadoc/missing_deprecated_annotation/MissingDeprecatedAnnotation.java index 7a8f181c93c9..47a61f52d71a 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/javadoc/missing_deprecated_annotation/MissingDeprecatedAnnotation.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/javadoc/missing_deprecated_annotation/MissingDeprecatedAnnotation.java @@ -34,4 +34,18 @@ class Twos; +} +class Parent { + /** @deprecated don't use */ + @Deprecated + public void some() { + } +} + +class Child extends Parent { + @Deprecated + @Override + public void some() { + super.some(); + } } \ No newline at end of file