diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/DeprecatedIsStillUsedInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/DeprecatedIsStillUsedInspection.java index 2ab8e02f9e4f..17e6756edd20 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/DeprecatedIsStillUsedInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/DeprecatedIsStillUsedInspection.java @@ -3,9 +3,11 @@ package com.intellij.codeInspection; import com.intellij.codeInspection.deprecation.DeprecationInspectionBase; import com.intellij.psi.*; +import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.PsiSearchHelper; import com.intellij.psi.search.searches.ReferencesSearch; +import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; /** @@ -57,6 +59,10 @@ public class DeprecatedIsStillUsedInspection extends LocalInspectionTool { } return ReferencesSearch.search(element, searchScope, false) - .anyMatch(reference -> !DeprecationInspectionBase.isElementInsideDeprecated(reference.getElement())); + .anyMatch(reference -> { + PsiElement referenceElement = reference.getElement(); + return !DeprecationInspectionBase.isElementInsideDeprecated(referenceElement) && + PsiTreeUtil.getParentOfType(referenceElement, PsiDocComment.class) == null; + }); } } diff --git a/java/java-tests/testData/inspection/deprecatedIsStillUsed/Simple.java b/java/java-tests/testData/inspection/deprecatedIsStillUsed/Simple.java new file mode 100644 index 000000000000..25bf50859da7 --- /dev/null +++ b/java/java-tests/testData/inspection/deprecatedIsStillUsed/Simple.java @@ -0,0 +1,51 @@ +public class Simple { + /** + * @deprecated + */ + int bbb; + + @Deprecated + int bbb2; + + @Deprecated + int bbb3() { + return 0; + } + + @Deprecated + class Bbb4 { + + } + + int use(){ + return bbb + bbb2 + bbb3() + Bbb4.class.toString().hashCode(); + } + + + ////////////////////////////// + + @Deprecated + int ddd2; + + @Deprecated + int ddd3() { + return 0; + } + + @Deprecated + class Ddd4 { + + } + + @Deprecated + int useFromDeprecated(){ + return ddd2 + ddd3() + Ddd4.class.toString().hashCode(); + } + + /** + * {@link #useFromJavadoc} + */ + void withJavadocReference() {} + @Deprecated + void useFromJavadoc() { } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deprecatedIsStillUsed/simple/expected.xml b/java/java-tests/testData/inspection/deprecatedIsStillUsed/simple/expected.xml deleted file mode 100644 index 3954a5716a4d..000000000000 --- a/java/java-tests/testData/inspection/deprecatedIsStillUsed/simple/expected.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - Test.java - 5 - Deprecated member 'bbb' is still used - - - Test.java - 8 - Deprecated member 'bbb2' is still used - - - Test.java - 11 - Deprecated member 'bbb3' is still used - - - Test.java - 16 - Deprecated member 'Bbb4' is still used - - - diff --git a/java/java-tests/testData/inspection/deprecatedIsStillUsed/simple/src/Test.java b/java/java-tests/testData/inspection/deprecatedIsStillUsed/simple/src/Test.java deleted file mode 100644 index dfbc1da2247b..000000000000 --- a/java/java-tests/testData/inspection/deprecatedIsStillUsed/simple/src/Test.java +++ /dev/null @@ -1,44 +0,0 @@ -public class Test{ - /** - * @deprecated - */ - int bbb; - - @Deprecated - int bbb2; - - @Deprecated - int bbb3() { - return 0; - } - - @Deprecated - class Bbb4 { - - } - - int use(){ - return bbb + bbb2 + bbb3() + Bbb4.class.toString().hashCode(); - } - - - ////////////////////////////// - - @Deprecated - int ddd2; - - @Deprecated - int ddd3() { - return 0; - } - - @Deprecated - class Ddd4 { - - } - - @Deprecated - int useFromDeprecated(){ - return ddd2 + ddd3() + Ddd4.class.toString().hashCode(); - } -} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/DeprecatedIsStillUsedInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/DeprecatedIsStillUsedInspectionTest.java index 6587337220d0..80d6f14d3ec6 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/DeprecatedIsStillUsedInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/DeprecatedIsStillUsedInspectionTest.java @@ -18,19 +18,21 @@ package com.intellij.java.codeInspection; import com.intellij.JavaTestUtil; import com.intellij.codeInspection.DeprecatedIsStillUsedInspection; -import com.intellij.testFramework.InspectionTestCase; +import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; -public class DeprecatedIsStillUsedInspectionTest extends InspectionTestCase { +public class DeprecatedIsStillUsedInspectionTest extends LightCodeInsightFixtureTestCase { @Override protected String getTestDataPath() { - return JavaTestUtil.getJavaTestDataPath() + "/inspection"; + return JavaTestUtil.getJavaTestDataPath() + "/inspection/deprecatedIsStillUsed"; } - private void doTest() { - doTest("deprecatedIsStillUsed/" + getTestName(true), new DeprecatedIsStillUsedInspection()); + @Override + protected void setUp() throws Exception { + super.setUp(); + myFixture.enableInspections(new DeprecatedIsStillUsedInspection()); } public void testSimple() { - doTest(); + myFixture.testHighlighting(getTestName(false) + ".java"); } }