From bc9bfcf727c668bfec0528a7a455b354301e2e13 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 22 Jun 2011 16:03:24 +0400 Subject: [PATCH] unused declaration: false positive: process anonymous classes for usages (IDEA-71274 ) --- .../reference/RefJavaUtilImpl.java | 1 + .../deadCode/usagesInAnonymous/expected.xml | 4 ++++ .../deadCode/usagesInAnonymous/src/Test.java | 16 ++++++++++++++++ .../codeInspection/UnusedDeclarationTest.java | 4 ++++ 4 files changed, 25 insertions(+) create mode 100644 java/java-tests/testData/inspection/deadCode/usagesInAnonymous/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/usagesInAnonymous/src/Test.java diff --git a/java/java-impl/src/com/intellij/codeInspection/reference/RefJavaUtilImpl.java b/java/java-impl/src/com/intellij/codeInspection/reference/RefJavaUtilImpl.java index d5579d6269e0..d5c2ea5ded2d 100644 --- a/java/java-impl/src/com/intellij/codeInspection/reference/RefJavaUtilImpl.java +++ b/java/java-impl/src/com/intellij/codeInspection/reference/RefJavaUtilImpl.java @@ -105,6 +105,7 @@ public class RefJavaUtilImpl extends RefJavaUtil{ } @Override public void visitAnonymousClass(PsiAnonymousClass psiClass) { + super.visitAnonymousClass(psiClass); RefClassImpl refClass = (RefClassImpl)refFrom.getRefManager().getReference(psiClass); refFrom.addReference(refClass, psiClass, psiFrom, false, true, null); } diff --git a/java/java-tests/testData/inspection/deadCode/usagesInAnonymous/expected.xml b/java/java-tests/testData/inspection/deadCode/usagesInAnonymous/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/usagesInAnonymous/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/usagesInAnonymous/src/Test.java b/java/java-tests/testData/inspection/deadCode/usagesInAnonymous/src/Test.java new file mode 100644 index 000000000000..fc3209c36358 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/usagesInAnonymous/src/Test.java @@ -0,0 +1,16 @@ +public class MyClass { + public static void main(String[] args) { + new Parent(method()) { + }; + } + + public static String method() { + return ""; + } + + public static class Parent { + protected Parent(Object o) { + System.out.println(o); + } + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/UnusedDeclarationTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/UnusedDeclarationTest.java index 77831f6bc580..bb87040ffeee 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/UnusedDeclarationTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/UnusedDeclarationTest.java @@ -176,4 +176,8 @@ public class UnusedDeclarationTest extends InspectionTestCase { public void testenumValues() throws Exception { doTest(); } + + public void testUsagesInAnonymous() throws Exception { + doTest(); + } }