Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Johnson2009-02-13 21:40:43 +0000
committerKent Johnson2009-02-13 21:40:43 +0000
commit4a8da6910e1c14334403dae0988de171cbd44126 (patch)
treee9e24f05917913aa97a94c66975c59c57bb82200 /org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ProblemConstructorTest.java
parent0eda4899fe49711eb207c4c5710f5520d9ea2e2d (diff)
downloadeclipse.jdt.core-4a8da6910e1c14334403dae0988de171cbd44126.tar.gz
eclipse.jdt.core-4a8da6910e1c14334403dae0988de171cbd44126.tar.xz
eclipse.jdt.core-4a8da6910e1c14334403dae0988de171cbd44126.zip
HEAD - 201912
Diffstat (limited to 'org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ProblemConstructorTest.java')
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ProblemConstructorTest.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ProblemConstructorTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ProblemConstructorTest.java
index 306fcbe107..3f0edb09bc 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ProblemConstructorTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ProblemConstructorTest.java
@@ -138,4 +138,60 @@ public void test003() {
"Zork cannot be resolved to a type\n" +
"----------\n");
}
+// https://bugs.eclipse.org/bugs/show_bug.cgi?id=201912, test to make sure that unused public members of
+// private class (including constructors, fields, types and methods) get warned about.
+public void test004() {
+ this.runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n" +
+ " private class M { \n" + // expect unused field, method, constructor and type warnings
+ " private int state = 0;\n" +
+ " public int unusedMethod() { return this.state; }\n" +
+ " public M (int state) { this.state = state;} \n" +
+ " public int unusedField = 0;\n" +
+ " public class N {}\n" +
+ " }\n" +
+ " private class N { \n" + // No warnings should come from within here
+ " private int state = 0;\n" +
+ " public int usedMethod() { new O(); return new N(this.state + this.usedField).state; }\n" +
+ " public N (int state) { this.state = state;} \n" +
+ " public int usedField = 0;\n" +
+ " public class O {}\n" +
+ " }\n" +
+ " public class P { \n" + // No warnings should come from within here.
+ " private int state = 0;\n" +
+ " public int unusedMethod() { return this.state; }\n" +
+ " public P (int state) { this.state = state;} \n" +
+ " public int unusedField = 0;\n" +
+ " public class N {}\n" +
+ " }\n" +
+ " public M foo(M m, N n) {\n" +
+ " n.usedMethod(); return m;\n" +
+ " }\n" +
+ "} \n"
+ },
+ "----------\n" +
+ "1. WARNING in X.java (at line 4)\n" +
+ " public int unusedMethod() { return this.state; }\n" +
+ " ^^^^^^^^^^^^^^\n" +
+ "The method unusedMethod() from the type X.M is never used locally\n" +
+ "----------\n" +
+ "2. WARNING in X.java (at line 5)\n" +
+ " public M (int state) { this.state = state;} \n" +
+ " ^^^^^^^^^^^^^\n" +
+ "The constructor X.M(int) is never used locally\n" +
+ "----------\n" +
+ "3. WARNING in X.java (at line 6)\n" +
+ " public int unusedField = 0;\n" +
+ " ^^^^^^^^^^^\n" +
+ "The field X.M.unusedField is never read locally\n" +
+ "----------\n" +
+ "4. WARNING in X.java (at line 7)\n" +
+ " public class N {}\n" +
+ " ^\n" +
+ "The type X.M.N is never used locally\n" +
+ "----------\n"
+ );
+}
}

Back to the top