From 876dc8587e7806e9f5313eab5d7bdb6d1724fbb6 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 28 Oct 2009 19:42:41 +0300 Subject: [PATCH] do not flag dead code if custom JUnit runner is used (IDEA-25444) --- .../inspection/deadCode/SCR6067/expected.xml | 9 + .../deadCode/SCR6067/ext_src/B.java | 4 + .../inspection/deadCode/SCR6067/src/A.java | 8 + .../inspection/deadCode/SCR9690/expected.xml | 4 + .../deadCode/SCR9690/ext_src/B.java | 3 + .../inspection/deadCode/SCR9690/src/A.java | 5 + .../deadCode/Serializable/expected.xml | 3 + .../Serializable/ext_src/External.java | 5 + .../deadCode/Serializable/src/Test.java | 6 + .../deadCode/UIFormUsage/expected.xml | 3 + .../deadCode/UIFormUsage/src/p1/Form.form | 12 ++ .../deadCode/UIFormUsage/src/p1/Form.java | 8 + .../additionalAnnotations/expected.xml | 4 + .../additionalAnnotations/src/Test.java | 9 + .../deadCode/annotationInterface/expected.xml | 4 + .../annotationInterface/src/Test.java | 6 + .../deadCode/chainOfCalls/expected.xml | 4 + .../deadCode/chainOfCalls/src/A.java | 5 + .../deadCode/chainOfCalls/src/B.java | 5 + .../deadCode/chainOfCalls/src/I.java | 3 + .../deadCode/chainOfCalls/src/Test.java | 6 + .../deadCode/chainOfCalls/src/comps.xml | 1 + .../deadCode/chainOfSuppressions/expected.xml | 4 + .../deadCode/chainOfSuppressions/src/A.java | 18 ++ .../deadCode/constructorCalls/expected.xml | 4 + .../deadCode/constructorCalls/src/A.java | 4 + .../deadCode/constructorCalls/src/B.java | 5 + .../deadCode/constructorCalls1/expected.xml | 4 + .../deadCode/constructorCalls1/src/Test.java | 9 + .../expected.xml | 4 + .../src/test/AMatcher.java | 8 + .../src/test/BracePair.java | 7 + .../src/test/Matcher.java | 5 + .../src/test/Test.java | 12 ++ .../deadCode/enumInstantiation/expected.xml | 4 + .../enumInstantiation/ext_src/Test1.java | 7 + .../deadCode/enumInstantiation/src/Test.java | 8 + .../deadCode/junitEntryPoint/expected.xml | 16 ++ .../deadCode/junitEntryPoint/src/A.java | 0 .../deadCode/junitEntryPoint/src/I.java | 3 + .../deadCode/junitEntryPoint/src/IImpl.java | 5 + .../deadCode/junitEntryPoint/src/Test.java | 15 ++ .../junitEntryPointCustomRunWith/expected.xml | 2 + .../src/Test.java | 10 ++ .../deadCode/mutableCalls/expected.xml | 16 ++ .../deadCode/mutableCalls/src/A.java | 9 + .../deadCode/nonJavaReferences/expected.xml | 9 + .../nonJavaReferences/ext_src/res.xml | 1 + .../deadCode/nonJavaReferences/src/Test.java | 3 + .../deadCode/packageLocal/expected.xml | 10 ++ .../deadCode/packageLocal/src/A.java | 8 + .../expected.xml | 4 + .../src/Interface.java | 3 + .../src/Test.java | 16 ++ .../expected.xml | 4 + .../src/Interface.java | 3 + .../src/Test.java | 16 ++ .../deadCode/reachableFromMain/expected.xml | 4 + .../deadCode/reachableFromMain/src/A.java | 10 ++ .../deadCode/reachableFromXml/expected.xml | 4 + .../deadCode/reachableFromXml/src/A.java | 5 + .../deadCode/reachableFromXml/src/comps.xml | 1 + .../deadCode/singleton/expected.xml | 4 + .../deadCode/singleton/src/Main.java | 5 + .../deadCode/singleton/src/Singleton.java | 7 + .../deadCode/staticMethods/expected.xml | 10 ++ .../deadCode/staticMethods/src/A.java | 7 + .../inspection/deadCode/suppress/expected.xml | 4 + .../deadCode/suppress/ext_src/B.java | 4 + .../inspection/deadCode/suppress/src/A.java | 9 + .../deadCode/suppress1/expected.xml | 4 + .../inspection/deadCode/suppress1/src/A.java | 8 + .../inspection/deadCode/suppress1/src/B.java | 3 + .../deadCode/suppress2/expected.xml | 4 + .../inspection/deadCode/suppress2/src/A.java | 8 + .../inspection/deadCode/suppress2/src/B.java | 3 + .../intellij/codeInspection/DeadCodeTest.java | 166 ++++++++++++++++++ .../inspection/JUnitUnusedCodeExtension.java | 5 +- 78 files changed, 646 insertions(+), 2 deletions(-) create mode 100644 java/java-tests/testData/inspection/deadCode/SCR6067/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/SCR6067/ext_src/B.java create mode 100644 java/java-tests/testData/inspection/deadCode/SCR6067/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/SCR9690/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/SCR9690/ext_src/B.java create mode 100644 java/java-tests/testData/inspection/deadCode/SCR9690/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/Serializable/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/Serializable/ext_src/External.java create mode 100644 java/java-tests/testData/inspection/deadCode/Serializable/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/UIFormUsage/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/UIFormUsage/src/p1/Form.form create mode 100644 java/java-tests/testData/inspection/deadCode/UIFormUsage/src/p1/Form.java create mode 100644 java/java-tests/testData/inspection/deadCode/additionalAnnotations/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/additionalAnnotations/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/annotationInterface/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/annotationInterface/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/chainOfCalls/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/chainOfCalls/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/chainOfCalls/src/B.java create mode 100644 java/java-tests/testData/inspection/deadCode/chainOfCalls/src/I.java create mode 100644 java/java-tests/testData/inspection/deadCode/chainOfCalls/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/chainOfCalls/src/comps.xml create mode 100644 java/java-tests/testData/inspection/deadCode/chainOfSuppressions/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/chainOfSuppressions/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/constructorCalls/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/constructorCalls/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/constructorCalls/src/B.java create mode 100644 java/java-tests/testData/inspection/deadCode/constructorCalls1/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/constructorCalls1/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/AMatcher.java create mode 100644 java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/BracePair.java create mode 100644 java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/Matcher.java create mode 100644 java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/enumInstantiation/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/enumInstantiation/ext_src/Test1.java create mode 100644 java/java-tests/testData/inspection/deadCode/enumInstantiation/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/junitEntryPoint/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/I.java create mode 100644 java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/IImpl.java create mode 100644 java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/junitEntryPointCustomRunWith/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/junitEntryPointCustomRunWith/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/mutableCalls/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/mutableCalls/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/nonJavaReferences/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/nonJavaReferences/ext_src/res.xml create mode 100644 java/java-tests/testData/inspection/deadCode/nonJavaReferences/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/packageLocal/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/packageLocal/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/src/Interface.java create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/src/Interface.java create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/src/Test.java create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromMain/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromMain/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromXml/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromXml/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/reachableFromXml/src/comps.xml create mode 100644 java/java-tests/testData/inspection/deadCode/singleton/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/singleton/src/Main.java create mode 100644 java/java-tests/testData/inspection/deadCode/singleton/src/Singleton.java create mode 100644 java/java-tests/testData/inspection/deadCode/staticMethods/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/staticMethods/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/suppress/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/suppress/ext_src/B.java create mode 100644 java/java-tests/testData/inspection/deadCode/suppress/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/suppress1/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/suppress1/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/suppress1/src/B.java create mode 100644 java/java-tests/testData/inspection/deadCode/suppress2/expected.xml create mode 100644 java/java-tests/testData/inspection/deadCode/suppress2/src/A.java create mode 100644 java/java-tests/testData/inspection/deadCode/suppress2/src/B.java create mode 100644 java/java-tests/testSrc/com/intellij/codeInspection/DeadCodeTest.java diff --git a/java/java-tests/testData/inspection/deadCode/SCR6067/expected.xml b/java/java-tests/testData/inspection/deadCode/SCR6067/expected.xml new file mode 100644 index 000000000000..dd7067eb5d9e --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/SCR6067/expected.xml @@ -0,0 +1,9 @@ + + + + A.java + 2 + Constructor is never used + + + diff --git a/java/java-tests/testData/inspection/deadCode/SCR6067/ext_src/B.java b/java/java-tests/testData/inspection/deadCode/SCR6067/ext_src/B.java new file mode 100644 index 000000000000..8bb0e59c94fb --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/SCR6067/ext_src/B.java @@ -0,0 +1,4 @@ +class B { + A a=new A(0); +} + diff --git a/java/java-tests/testData/inspection/deadCode/SCR6067/src/A.java b/java/java-tests/testData/inspection/deadCode/SCR6067/src/A.java new file mode 100644 index 000000000000..08342c54e92a --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/SCR6067/src/A.java @@ -0,0 +1,8 @@ +class A { + A() { + } + A(int k) { + System.out.println(k); + } +} + diff --git a/java/java-tests/testData/inspection/deadCode/SCR9690/expected.xml b/java/java-tests/testData/inspection/deadCode/SCR9690/expected.xml new file mode 100644 index 000000000000..d704d58ed391 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/SCR9690/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/SCR9690/ext_src/B.java b/java/java-tests/testData/inspection/deadCode/SCR9690/ext_src/B.java new file mode 100644 index 000000000000..10373621f638 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/SCR9690/ext_src/B.java @@ -0,0 +1,3 @@ +class B extends A { +} + diff --git a/java/java-tests/testData/inspection/deadCode/SCR9690/src/A.java b/java/java-tests/testData/inspection/deadCode/SCR9690/src/A.java new file mode 100644 index 000000000000..6a64ecd92e19 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/SCR9690/src/A.java @@ -0,0 +1,5 @@ +abstract class A { + A() { + } +} + diff --git a/java/java-tests/testData/inspection/deadCode/Serializable/expected.xml b/java/java-tests/testData/inspection/deadCode/Serializable/expected.xml new file mode 100644 index 000000000000..5e933496b9cf --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/Serializable/expected.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/Serializable/ext_src/External.java b/java/java-tests/testData/inspection/deadCode/Serializable/ext_src/External.java new file mode 100644 index 000000000000..9e17ba18d453 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/Serializable/ext_src/External.java @@ -0,0 +1,5 @@ +public class External { + { + new Test(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/Serializable/src/Test.java b/java/java-tests/testData/inspection/deadCode/Serializable/src/Test.java new file mode 100644 index 000000000000..5afb0ecb21d5 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/Serializable/src/Test.java @@ -0,0 +1,6 @@ +public class Test implements java.io.Serializable { + private void writeObject(java.io.ObjectOutputStream out) {} + private void readObject(java.io.ObjectInputStream in) {} + public Object writeReplace() { return null; } + public Object readResolve() { return null; } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/UIFormUsage/expected.xml b/java/java-tests/testData/inspection/deadCode/UIFormUsage/expected.xml new file mode 100644 index 000000000000..5e933496b9cf --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/UIFormUsage/expected.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/UIFormUsage/src/p1/Form.form b/java/java-tests/testData/inspection/deadCode/UIFormUsage/src/p1/Form.form new file mode 100644 index 000000000000..4e8359dfd015 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/UIFormUsage/src/p1/Form.form @@ -0,0 +1,12 @@ + +
+ + + + + + + + + +
diff --git a/java/java-tests/testData/inspection/deadCode/UIFormUsage/src/p1/Form.java b/java/java-tests/testData/inspection/deadCode/UIFormUsage/src/p1/Form.java new file mode 100644 index 000000000000..bbe91f687f72 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/UIFormUsage/src/p1/Form.java @@ -0,0 +1,8 @@ +package p1; + +public class Form { + private JLabel myLabel; + + private void createUIComponents() { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/additionalAnnotations/expected.xml b/java/java-tests/testData/inspection/deadCode/additionalAnnotations/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/additionalAnnotations/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/additionalAnnotations/src/Test.java b/java/java-tests/testData/inspection/deadCode/additionalAnnotations/src/Test.java new file mode 100644 index 000000000000..22ee9d72f991 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/additionalAnnotations/src/Test.java @@ -0,0 +1,9 @@ +@Annotated +public class Test { + @Annotated + public void foo(){} + + @Annotated + public int myPublicField; + +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/annotationInterface/expected.xml b/java/java-tests/testData/inspection/deadCode/annotationInterface/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/annotationInterface/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/annotationInterface/src/Test.java b/java/java-tests/testData/inspection/deadCode/annotationInterface/src/Test.java new file mode 100644 index 000000000000..d2865d1331aa --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/annotationInterface/src/Test.java @@ -0,0 +1,6 @@ +import java.lang.annotation.*; + +@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE}) +public @interface Test { + String value() default ""; +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/chainOfCalls/expected.xml b/java/java-tests/testData/inspection/deadCode/chainOfCalls/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/chainOfCalls/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/A.java b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/A.java new file mode 100644 index 000000000000..6240d7f5e2e2 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/A.java @@ -0,0 +1,5 @@ +public class A { + public A() { + + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/B.java b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/B.java new file mode 100644 index 000000000000..f619d5e5222a --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/B.java @@ -0,0 +1,5 @@ +public class B implements I{ + public void projectOpened() { + new A(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/I.java b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/I.java new file mode 100644 index 000000000000..c00581affca7 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/I.java @@ -0,0 +1,3 @@ +public interface I { + void projectOpened(); +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/Test.java b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/Test.java new file mode 100644 index 000000000000..c0c7b07c4aaf --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/Test.java @@ -0,0 +1,6 @@ +class Test { + public static void main(String[] args){ + I i = null; + i.projectOpened(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/comps.xml b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/comps.xml new file mode 100644 index 000000000000..b93ca3a53f01 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/chainOfCalls/src/comps.xml @@ -0,0 +1 @@ +B \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/chainOfSuppressions/expected.xml b/java/java-tests/testData/inspection/deadCode/chainOfSuppressions/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/chainOfSuppressions/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/chainOfSuppressions/src/A.java b/java/java-tests/testData/inspection/deadCode/chainOfSuppressions/src/A.java new file mode 100644 index 000000000000..997e142d2e4c --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/chainOfSuppressions/src/A.java @@ -0,0 +1,18 @@ +public class A { + public static void main(String[] args) { + new A(); + } + + private void a(){ + } + + private void b(){ + a(); + } + + @java.lang.SuppressWarnings({"UnusedDeclaration"}) + private void c(){ + b(); + } +} + diff --git a/java/java-tests/testData/inspection/deadCode/constructorCalls/expected.xml b/java/java-tests/testData/inspection/deadCode/constructorCalls/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorCalls/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/constructorCalls/src/A.java b/java/java-tests/testData/inspection/deadCode/constructorCalls/src/A.java new file mode 100644 index 000000000000..b01999a86300 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorCalls/src/A.java @@ -0,0 +1,4 @@ +public class A { + public A(int i) { + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/constructorCalls/src/B.java b/java/java-tests/testData/inspection/deadCode/constructorCalls/src/B.java new file mode 100644 index 000000000000..77c142dc9a07 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorCalls/src/B.java @@ -0,0 +1,5 @@ +public class B { + public static void main(String[] args){ + System.out.println(new A(1)); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/constructorCalls1/expected.xml b/java/java-tests/testData/inspection/deadCode/constructorCalls1/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorCalls1/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/constructorCalls1/src/Test.java b/java/java-tests/testData/inspection/deadCode/constructorCalls1/src/Test.java new file mode 100644 index 000000000000..ab4c4fbaf432 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorCalls1/src/Test.java @@ -0,0 +1,9 @@ +public class Test { + public static void main(String[] args){ + System.out.println(new A(1)); + } + + private class A { + public A(int i){} + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/expected.xml b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/AMatcher.java b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/AMatcher.java new file mode 100644 index 000000000000..a34d1fd0f8dc --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/AMatcher.java @@ -0,0 +1,8 @@ +package test; + +public class AMatcher implements Matcher{ + private static final BracePair [] PAIRS = new BracePair[]{new BracePair()}; + public BracePair[] getPairs() { + return PAIRS; + } +} diff --git a/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/BracePair.java b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/BracePair.java new file mode 100644 index 000000000000..5e444a3e265c --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/BracePair.java @@ -0,0 +1,7 @@ +package test; + +public class BracePair { + + public BracePair() { + } +} diff --git a/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/Matcher.java b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/Matcher.java new file mode 100644 index 000000000000..ad370de57b73 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/Matcher.java @@ -0,0 +1,5 @@ +package test; + +public interface Matcher { + BracePair[] getPairs(); +} diff --git a/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/Test.java b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/Test.java new file mode 100644 index 000000000000..c54db3d285f2 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/constructorReachableFromFieldInitializer/src/test/Test.java @@ -0,0 +1,12 @@ +package test; + +public class Test { + + public Test(Matcher m) { + BracePair[] bracePairs = m.getPairs(); + } + + public static void main(String[] args) { + System.out.println(new Test(new AMatcher())); + } +} diff --git a/java/java-tests/testData/inspection/deadCode/enumInstantiation/expected.xml b/java/java-tests/testData/inspection/deadCode/enumInstantiation/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/enumInstantiation/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/enumInstantiation/ext_src/Test1.java b/java/java-tests/testData/inspection/deadCode/enumInstantiation/ext_src/Test1.java new file mode 100644 index 000000000000..d0490b228bfe --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/enumInstantiation/ext_src/Test1.java @@ -0,0 +1,7 @@ +public void Test1 { + void foo() { + if (Test.FIRST.invert() != Test.SECOND) { + //assert + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/enumInstantiation/src/Test.java b/java/java-tests/testData/inspection/deadCode/enumInstantiation/src/Test.java new file mode 100644 index 000000000000..0db3984de042 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/enumInstantiation/src/Test.java @@ -0,0 +1,8 @@ +public enum Test +{ + FIRST, SECOND; + + public Test invert() { + return this == FIRST ? SECOND : FIRST; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/junitEntryPoint/expected.xml b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/expected.xml new file mode 100644 index 000000000000..fe20bdd54e60 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/expected.xml @@ -0,0 +1,16 @@ + + + + Test.java + 14 + + Method is never used. + + + Test.java + 8 + + Method is never used. + + + diff --git a/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/A.java b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/A.java new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/I.java b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/I.java new file mode 100644 index 000000000000..30e18dcba1d4 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/I.java @@ -0,0 +1,3 @@ +public interface I { + A create(); +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/IImpl.java b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/IImpl.java new file mode 100644 index 000000000000..d045ab0f2ae9 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/IImpl.java @@ -0,0 +1,5 @@ +public class IImpl extends I { + public A create() { + return new A(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/Test.java b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/Test.java new file mode 100644 index 000000000000..11eec16b2bf9 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/junitEntryPoint/src/Test.java @@ -0,0 +1,15 @@ +public class Test { + public static junit.framework.Test suite() { + I i = new IImpl(); + A a = i.create(); + return null; + } + + public void testSmth() {} + + public void setUp() {} + + public void tearDown(){} + + public void notATest(){} +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/junitEntryPointCustomRunWith/expected.xml b/java/java-tests/testData/inspection/deadCode/junitEntryPointCustomRunWith/expected.xml new file mode 100644 index 000000000000..c63c9258595e --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/junitEntryPointCustomRunWith/expected.xml @@ -0,0 +1,2 @@ + + diff --git a/java/java-tests/testData/inspection/deadCode/junitEntryPointCustomRunWith/src/Test.java b/java/java-tests/testData/inspection/deadCode/junitEntryPointCustomRunWith/src/Test.java new file mode 100644 index 000000000000..34bd45976763 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/junitEntryPointCustomRunWith/src/Test.java @@ -0,0 +1,10 @@ +@org.junit.runner.RunWith(UnresolvedRunner.class) +public class Test { + public void testSmth() {} + + public void setUp() {} + + public void tearDown(){} + + public void notATestButCanBeRunnedWithCustomRunner(){} +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/mutableCalls/expected.xml b/java/java-tests/testData/inspection/deadCode/mutableCalls/expected.xml new file mode 100644 index 000000000000..98f48aedf800 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/mutableCalls/expected.xml @@ -0,0 +1,16 @@ + + + + A.java + 2 + unused declaration + Method has usage(s) but they all belong to recursive calls chain that has no members reachable from entry points. + + + A.java + 5 + unused declaration + Method has usage(s) but they all belong to recursive calls chain that has no members reachable from entry points. + + + diff --git a/java/java-tests/testData/inspection/deadCode/mutableCalls/src/A.java b/java/java-tests/testData/inspection/deadCode/mutableCalls/src/A.java new file mode 100644 index 000000000000..b8e36ccd839f --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/mutableCalls/src/A.java @@ -0,0 +1,9 @@ +public class A { + private void a(){ + b(); + } + private void b(){ + a(); + } +} + diff --git a/java/java-tests/testData/inspection/deadCode/nonJavaReferences/expected.xml b/java/java-tests/testData/inspection/deadCode/nonJavaReferences/expected.xml new file mode 100644 index 000000000000..7454782b31aa --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/nonJavaReferences/expected.xml @@ -0,0 +1,9 @@ + + + + Test.java + 2 + Field has no usages. + + + diff --git a/java/java-tests/testData/inspection/deadCode/nonJavaReferences/ext_src/res.xml b/java/java-tests/testData/inspection/deadCode/nonJavaReferences/ext_src/res.xml new file mode 100644 index 000000000000..38009bb43e19 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/nonJavaReferences/ext_src/res.xml @@ -0,0 +1 @@ +Test \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/nonJavaReferences/src/Test.java b/java/java-tests/testData/inspection/deadCode/nonJavaReferences/src/Test.java new file mode 100644 index 000000000000..3da4a7e08a27 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/nonJavaReferences/src/Test.java @@ -0,0 +1,3 @@ +public class Test { + public static final String LOG = Test.class.getName(); +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/packageLocal/expected.xml b/java/java-tests/testData/inspection/deadCode/packageLocal/expected.xml new file mode 100644 index 000000000000..77f16e9c5fd3 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/packageLocal/expected.xml @@ -0,0 +1,10 @@ + + + + A.java + 3 + unused declaration + Class is not instantiated. + + + diff --git a/java/java-tests/testData/inspection/deadCode/packageLocal/src/A.java b/java/java-tests/testData/inspection/deadCode/packageLocal/src/A.java new file mode 100644 index 000000000000..69d866df0b84 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/packageLocal/src/A.java @@ -0,0 +1,8 @@ +class A { +} +class B{ + private void b(){ + new B(); + } +} + diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/expected.xml b/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/src/Interface.java b/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/src/Interface.java new file mode 100644 index 000000000000..7fc48ac44173 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/src/Interface.java @@ -0,0 +1,3 @@ +interface Interface { + int[] getField(); +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/src/Test.java b/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/src/Test.java new file mode 100644 index 000000000000..e429f1e033d9 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromFieldArrayInitializer/src/Test.java @@ -0,0 +1,16 @@ +public class Test implements Interface{ + public static int[] myField = new int[] {init()}; + + public static int init() { + return 1; + } + + public static void main(String[] args){ + Interface i = new Test(); + System.out.println(i.getField()); + } + + public int[] getField() { + return myField; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/expected.xml b/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/src/Interface.java b/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/src/Interface.java new file mode 100644 index 000000000000..2f95988ae793 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/src/Interface.java @@ -0,0 +1,3 @@ +interface Interface { + int getField(); +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/src/Test.java b/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/src/Test.java new file mode 100644 index 000000000000..3e54764d40a8 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromFieldInitializer/src/Test.java @@ -0,0 +1,16 @@ +public class Test implements Interface{ + public int myField = init(); + + public int init() { + return 1; + } + + public static void main(String[] args){ + Interface i = new Test(); + System.out.println(i.getField()); + } + + public int getField() { + return myField; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromMain/expected.xml b/java/java-tests/testData/inspection/deadCode/reachableFromMain/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromMain/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromMain/src/A.java b/java/java-tests/testData/inspection/deadCode/reachableFromMain/src/A.java new file mode 100644 index 000000000000..5ccf286a4d4c --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromMain/src/A.java @@ -0,0 +1,10 @@ +public class A { + public static void main(String[] args) { + B.b(); + } + private static class B{ + public static B b(){ + return new B(); + } + } +} diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromXml/expected.xml b/java/java-tests/testData/inspection/deadCode/reachableFromXml/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromXml/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromXml/src/A.java b/java/java-tests/testData/inspection/deadCode/reachableFromXml/src/A.java new file mode 100644 index 000000000000..09332aebc23f --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromXml/src/A.java @@ -0,0 +1,5 @@ +public class A { + public A() { + + } +} diff --git a/java/java-tests/testData/inspection/deadCode/reachableFromXml/src/comps.xml b/java/java-tests/testData/inspection/deadCode/reachableFromXml/src/comps.xml new file mode 100644 index 000000000000..525dcadd86cc --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/reachableFromXml/src/comps.xml @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/singleton/expected.xml b/java/java-tests/testData/inspection/deadCode/singleton/expected.xml new file mode 100644 index 000000000000..d704d58ed391 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/singleton/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/singleton/src/Main.java b/java/java-tests/testData/inspection/deadCode/singleton/src/Main.java new file mode 100644 index 000000000000..38f90d23111e --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/singleton/src/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String args[]) { + Singleton.getInstance(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/singleton/src/Singleton.java b/java/java-tests/testData/inspection/deadCode/singleton/src/Singleton.java new file mode 100644 index 000000000000..52782ddd4f30 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/singleton/src/Singleton.java @@ -0,0 +1,7 @@ +pubic class Singleton { + private static Singleton ourInstance = new Singleton(); + + public Singleton getInstance() { + return ourInstance; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/staticMethods/expected.xml b/java/java-tests/testData/inspection/deadCode/staticMethods/expected.xml new file mode 100644 index 000000000000..8001750bcb2a --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/staticMethods/expected.xml @@ -0,0 +1,10 @@ + + + + A.java + 3 + unused declaration + Method is never used. + + + diff --git a/java/java-tests/testData/inspection/deadCode/staticMethods/src/A.java b/java/java-tests/testData/inspection/deadCode/staticMethods/src/A.java new file mode 100644 index 000000000000..78115bb94cfb --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/staticMethods/src/A.java @@ -0,0 +1,7 @@ +public class A { + private A(){} + public static A getInstance(){ + return new A(); + } +} + diff --git a/java/java-tests/testData/inspection/deadCode/suppress/expected.xml b/java/java-tests/testData/inspection/deadCode/suppress/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/suppress/ext_src/B.java b/java/java-tests/testData/inspection/deadCode/suppress/ext_src/B.java new file mode 100644 index 000000000000..8bb0e59c94fb --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress/ext_src/B.java @@ -0,0 +1,4 @@ +class B { + A a=new A(0); +} + diff --git a/java/java-tests/testData/inspection/deadCode/suppress/src/A.java b/java/java-tests/testData/inspection/deadCode/suppress/src/A.java new file mode 100644 index 000000000000..f18bc0dd1d68 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress/src/A.java @@ -0,0 +1,9 @@ +class A { + @java.lang.SuppressWarnings({"UnusedDeclaration"}) + A() { + } + A(int k) { + System.out.println(k); + } +} + diff --git a/java/java-tests/testData/inspection/deadCode/suppress1/expected.xml b/java/java-tests/testData/inspection/deadCode/suppress1/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress1/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/suppress1/src/A.java b/java/java-tests/testData/inspection/deadCode/suppress1/src/A.java new file mode 100644 index 000000000000..434165fbcfec --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress1/src/A.java @@ -0,0 +1,8 @@ +class A { + @java.lang.SuppressWarnings({"UnusedDeclaration"}) + A() { + new B(); + } + +} + diff --git a/java/java-tests/testData/inspection/deadCode/suppress1/src/B.java b/java/java-tests/testData/inspection/deadCode/suppress1/src/B.java new file mode 100644 index 000000000000..971c2dc3b07f --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress1/src/B.java @@ -0,0 +1,3 @@ +class B { + B(){} +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/deadCode/suppress2/expected.xml b/java/java-tests/testData/inspection/deadCode/suppress2/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress2/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/java/java-tests/testData/inspection/deadCode/suppress2/src/A.java b/java/java-tests/testData/inspection/deadCode/suppress2/src/A.java new file mode 100644 index 000000000000..0a6b69a4084d --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress2/src/A.java @@ -0,0 +1,8 @@ +class A { + @java.lang.SuppressWarnings({"UnusedDeclaration"}) + A() { + B bb = new B(); + } + +} + diff --git a/java/java-tests/testData/inspection/deadCode/suppress2/src/B.java b/java/java-tests/testData/inspection/deadCode/suppress2/src/B.java new file mode 100644 index 000000000000..513679493084 --- /dev/null +++ b/java/java-tests/testData/inspection/deadCode/suppress2/src/B.java @@ -0,0 +1,3 @@ +class B { + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DeadCodeTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/DeadCodeTest.java new file mode 100644 index 000000000000..d90f59a5ab52 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/codeInspection/DeadCodeTest.java @@ -0,0 +1,166 @@ +package com.intellij.codeInspection; + +import com.intellij.JavaTestUtil; +import com.intellij.codeInspection.deadCode.DeadCodeInspection; +import com.intellij.openapi.roots.LanguageLevelProjectExtension; +import com.intellij.pom.java.LanguageLevel; +import com.intellij.psi.JavaPsiFacade; +import com.intellij.testFramework.InspectionTestCase; + +/** + * @author max + */ +public class DeadCodeTest extends InspectionTestCase { + private DeadCodeInspection myTool; + + @Override + protected String getTestDataPath() { + return JavaTestUtil.getJavaTestDataPath() + "/inspection"; + } + + protected void setUp() throws Exception { + super.setUp(); + myTool = new DeadCodeInspection(); + LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(LanguageLevel.JDK_1_3); + } + + private void doTest() throws Exception { + doTest("deadCode/" + getTestName(true), myTool); + } + + public void testSCR6067() throws Exception { + boolean old = myTool.ADD_NONJAVA_TO_ENTRIES; + myTool.ADD_NONJAVA_TO_ENTRIES = false; + doTest(); + myTool.ADD_NONJAVA_TO_ENTRIES = old; + } + + public void testsingleton() throws Exception { + boolean old = myTool.ADD_NONJAVA_TO_ENTRIES; + myTool.ADD_NONJAVA_TO_ENTRIES = false; + doTest(); + myTool.ADD_NONJAVA_TO_ENTRIES = old; + } + + public void testSCR9690() throws Exception { + boolean old = myTool.ADD_NONJAVA_TO_ENTRIES; + myTool.ADD_NONJAVA_TO_ENTRIES = false; + doTest(); + myTool.ADD_NONJAVA_TO_ENTRIES = old; + } + + public void testUIFormUsage() throws Exception { + boolean old = myTool.ADD_NONJAVA_TO_ENTRIES; + myTool.ADD_NONJAVA_TO_ENTRIES = false; + doTest(); + myTool.ADD_NONJAVA_TO_ENTRIES = old; + } + + public void testSerializable() throws Exception { + doTest(); + } + + public void testpackageLocal() throws Exception { + doTest(); + } + + public void testreachableFromMain() throws Exception{ + boolean old = myTool.ADD_MAINS_TO_ENTRIES; + myTool.ADD_MAINS_TO_ENTRIES = true; + doTest(); + myTool.ADD_MAINS_TO_ENTRIES = old; + } + + public void testmutableCalls() throws Exception{ + doTest(); + } + + public void teststaticMethods() throws Exception{ + doTest(); + } + + //-------------- suppressed ---------------- + + private void doTest15() throws Exception { + final JavaPsiFacade facade = getJavaFacade(); + final LanguageLevel effectiveLanguageLevel = LanguageLevelProjectExtension.getInstance(facade.getProject()).getLanguageLevel(); + LanguageLevelProjectExtension.getInstance(facade.getProject()).setLanguageLevel(LanguageLevel.JDK_1_5); + doTest(); + LanguageLevelProjectExtension.getInstance(facade.getProject()).setLanguageLevel(effectiveLanguageLevel); + } + + public void testsuppress() throws Exception{ + doTest15(); + } + + public void testsuppress1() throws Exception { + doTest15(); + } + + public void testsuppress2() throws Exception { + doTest15(); + } + + public void testchainOfSuppressions() throws Exception{ + doTest15(); + } + + public void testreachableFromXml() throws Exception { + doTest(); + } + + public void testchainOfCalls() throws Exception { + doTest(); + } + + public void testreachableFromFieldInitializer() throws Exception { + doTest(); + } + + public void testreachableFromFieldArrayInitializer() throws Exception { + doTest(); + } + + public void testconstructorReachableFromFieldInitializer() throws Exception { + doTest(); + } + + public void testadditionalAnnotations() throws Exception { + final String testAnnotation = "Annotated"; + myTool.ADDITIONAL_ANNOTATIONS.add(testAnnotation); + try { + doTest(); + } + finally { + myTool.ADDITIONAL_ANNOTATIONS.remove(testAnnotation); + } + } + + public void testannotationInterface() throws Exception { + doTest15(); + } + + public void testjunitEntryPoint() throws Exception { + doTest(); + } + + public void testjunitEntryPointCustomRunWith() throws Exception { + doTest(); + } + + public void testconstructorCalls() throws Exception { + doTest(); + } + + public void testconstructorCalls1() throws Exception { + doTest(); + } + + public void testnonJavaReferences() throws Exception { + doTest(); + } + + public void testenumInstantiation() throws Exception { + doTest(); + } +} diff --git a/plugins/junit/src/com/intellij/execution/junit2/inspection/JUnitUnusedCodeExtension.java b/plugins/junit/src/com/intellij/execution/junit2/inspection/JUnitUnusedCodeExtension.java index 023ad9a72798..5c180861674d 100644 --- a/plugins/junit/src/com/intellij/execution/junit2/inspection/JUnitUnusedCodeExtension.java +++ b/plugins/junit/src/com/intellij/execution/junit2/inspection/JUnitUnusedCodeExtension.java @@ -62,16 +62,17 @@ public class JUnitUnusedCodeExtension extends UnusedCodeExtension { } else if (psiElement instanceof PsiMethod) { final PsiMethod psiMethod = (PsiMethod)psiElement; + if (JUnitUtil.getTestMethod(psiElement) != null) return true; final String name = psiMethod.getName(); if (psiMethod.hasModifierProperty(PsiModifier.PUBLIC) && !psiMethod.hasModifierProperty(PsiModifier.ABSTRACT)) { - if (name.startsWith("test") || "suite".equals(name) || "setUp".equals(name) || "tearDown".equals(name)) { + if ("suite".equals(name) || "setUp".equals(name) || "tearDown".equals(name)) { return true; } if (psiMethod.hasModifierProperty(PsiModifier.STATIC)) { if (AnnotationUtil.isAnnotated(psiMethod, Arrays.asList(BeforeClass.class.getName(), AfterClass.class.getName(), Parameterized.Parameters.class.getName().replace('$', '.')))) return true; } else { - if (AnnotationUtil.isAnnotated(psiMethod, Arrays.asList(Before.class.getName(), After.class.getName(), Test.class.getName()))) return true; + if (AnnotationUtil.isAnnotated(psiMethod, Arrays.asList(Before.class.getName(), After.class.getName()))) return true; } } }