diff --git a/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java b/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java
index 36773809cddd..8cf91c161ba4 100644
--- a/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java
+++ b/java/java-impl/src/com/intellij/codeInspection/deadCode/UnusedDeclarationPresentation.java
@@ -431,18 +431,19 @@ public class UnusedDeclarationPresentation extends DefaultInspectionToolPresenta
private @Nullable RefJavaElement refineElement(RefEntity refEntity) {
if (!(refEntity instanceof RefJavaElement refElement)) return null; //dead code doesn't work with refModule | refPackage
- if (!getFilter().accepts(refElement)) return null;
- refEntity = getRefManager().getRefinedElement(refEntity);
- refElement = (RefJavaElement)refEntity;
- if (!refElement.isValid()) return null;
- if (!compareVisibilities(refElement, getTool().getSharedLocalInspectionTool())) return null;
- if (isSuppressed(refElement)) return null;
+ RefFilter filter = getFilter();
+ if (!filter.accepts(refElement)) return null;
+ RefJavaElement refinedElement = (RefJavaElement)getRefManager().getRefinedElement(refEntity);
+ if (refinedElement != refEntity && filter.accepts(refinedElement)) return null; // prevent duplicate reporting
+ if (!refinedElement.isValid()) return null;
+ if (!compareVisibilities(refinedElement, getTool().getSharedLocalInspectionTool())) return null;
+ if (isSuppressed(refinedElement)) return null;
if (!ApplicationManager.getApplication().isHeadlessEnvironment() & getContext().getUIOptions().FILTER_RESOLVED_ITEMS &&
- (myFixedElements.containsKey(refElement) || isExcluded(refEntity))) {
+ (myFixedElements.containsKey(refinedElement) || isExcluded(refinedElement))) {
return null;
}
- if (skipEntryPoints(refElement)) return null;
- return refElement;
+ if (skipEntryPoints(refinedElement)) return null;
+ return refinedElement;
}
protected boolean skipEntryPoints(RefJavaElement refElement) {
diff --git a/java/java-tests/testData/inspection/deadCode/instantiatedInTestOnly/expected.xml b/java/java-tests/testData/inspection/deadCode/instantiatedInTestOnly/expected.xml
index 6cb752c54514..0e35c50c8afd 100644
--- a/java/java-tests/testData/inspection/deadCode/instantiatedInTestOnly/expected.xml
+++ b/java/java-tests/testData/inspection/deadCode/instantiatedInTestOnly/expected.xml
@@ -19,11 +19,6 @@
4
Class has one instantiation, but it is not reachable from entry points.
-
- Test.java
- 1
- Class has one instantiation but it is not reachable from entry points.
-
Test.java
2
diff --git a/java/java-tests/testData/inspection/deadCode/instantiatedInTestOnlyStatic/expected.xml b/java/java-tests/testData/inspection/deadCode/instantiatedInTestOnlyStatic/expected.xml
index 284e602a8185..0ebc3326cd82 100644
--- a/java/java-tests/testData/inspection/deadCode/instantiatedInTestOnlyStatic/expected.xml
+++ b/java/java-tests/testData/inspection/deadCode/instantiatedInTestOnlyStatic/expected.xml
@@ -6,12 +6,6 @@
No class references has been found. Class static initializer is not reachable.
-
- Test.java
- 1
- No class references has been found. Class static initializer is not reachable.
-
-
Test.java
2
diff --git a/java/java-tests/testData/inspection/unusedServiceImplementations/unusedExternalImplementation/expected.xml b/java/java-tests/testData/inspection/unusedServiceImplementations/unusedExternalImplementation/expected.xml
index 07e39458ded6..6c315feb6601 100644
--- a/java/java-tests/testData/inspection/unusedServiceImplementations/unusedExternalImplementation/expected.xml
+++ b/java/java-tests/testData/inspection/unusedServiceImplementations/unusedExternalImplementation/expected.xml
@@ -9,15 +9,6 @@
Class has one instantiation but it is not reachable from entry points.
-
- MyServiceExt.java
- 4
- my.ext
-
- unused declaration
- Class has one instantiation but it is not reachable from entry points.
-
-
MyService.java
1
diff --git a/java/java-tests/testData/inspection/unusedServiceImplementations/unusedImplementation/expected.xml b/java/java-tests/testData/inspection/unusedServiceImplementations/unusedImplementation/expected.xml
index c01808e2552f..fdb6f1725e4e 100644
--- a/java/java-tests/testData/inspection/unusedServiceImplementations/unusedImplementation/expected.xml
+++ b/java/java-tests/testData/inspection/unusedServiceImplementations/unusedImplementation/expected.xml
@@ -9,15 +9,6 @@
Class has one instantiation but it is not reachable from entry points.
-
- MyServiceImpl.java
- 4
- my.impl
-
- unused declaration
- Class has one instantiation but it is not reachable from entry points.
-
-
MyService.java
1