Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2019-10-03 19:36:44 +0000
committerStephan Herrmann2019-10-03 20:33:18 +0000
commit9f7623dbf89718c901b626f8024cbc33b5147b6e (patch)
treefdce4467994e08de0297b18a49a4e27e1689f545
parent5ca2ca232f8cb29b05a8a4d67dda881f1f0670a1 (diff)
downloadeclipse.jdt.core-9f7623dbf89718c901b626f8024cbc33b5147b6e.tar.gz
eclipse.jdt.core-9f7623dbf89718c901b626f8024cbc33b5147b6e.tar.xz
eclipse.jdt.core-9f7623dbf89718c901b626f8024cbc33b5147b6e.zip
Bug 409303 - [batch][compiler][options] "-warn:+unused" should includeI20191006-0600I20191003-1800
unusedAllocation Change-Id: Ib8842ccef0aaf044cea0215b1e441eade68d7428
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java36
-rw-r--r--org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java12
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java16
3 files changed, 46 insertions, 18 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
index 6451a17aaa..4bb46891c0 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
@@ -10709,17 +10709,17 @@ public void test299(){
+ " -proceedOnError -err:+unused -d \"" + OUTPUT_DIR + "\"",
"",
"----------\n" +
- "1. INFO in ---OUTPUT_DIR_PLACEHOLDER---/X.java (at line 2)\n" +
+ "1. WARNING in ---OUTPUT_DIR_PLACEHOLDER---/X.java (at line 2)\n" +
" @SuppressWarnings(\"unused\")\n" +
" ^^^^^^^^\n" +
- "At least one of the problems in category 'unused' is not analysed due to a compiler option being ignored\n" +
+ "Unnecessary @SuppressWarnings(\"unused\")\n" +
"----------\n" +
"2. ERROR in ---OUTPUT_DIR_PLACEHOLDER---/X.java (at line 3)\n" +
" private int i;\n" +
" ^\n" +
"The value of the field X.i is not used\n" +
"----------\n" +
- "2 problems (1 error, 0 warnings, 1 info)\n",
+ "2 problems (1 error, 1 warning)\n",
true);
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=295551
@@ -10800,17 +10800,17 @@ public void test303(){
+ " -proceedOnError -warn:-suppress -err:+suppress,unused -warn:+suppress -d \"" + OUTPUT_DIR + "\"",
"",
"----------\n" +
- "1. INFO in ---OUTPUT_DIR_PLACEHOLDER---/X.java (at line 2)\n" +
+ "1. WARNING in ---OUTPUT_DIR_PLACEHOLDER---/X.java (at line 2)\n" +
" @SuppressWarnings(\"unused\")\n" +
" ^^^^^^^^\n" +
- "At least one of the problems in category 'unused' is not analysed due to a compiler option being ignored\n" +
+ "Unnecessary @SuppressWarnings(\"unused\")\n" +
"----------\n" +
"2. ERROR in ---OUTPUT_DIR_PLACEHOLDER---/X.java (at line 3)\n" +
" private int i;\n" +
" ^\n" +
"The value of the field X.i is not used\n" +
"----------\n" +
- "2 problems (1 error, 0 warnings, 1 info)\n",
+ "2 problems (1 error, 1 warning)\n",
true);
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=295551
@@ -13183,4 +13183,28 @@ public void testFailOnWarnings_WithWarning() {
"",
true);
}
+public void testUnusedObjectAllocation() {
+ runNegativeTest(
+ new String[] {
+ "X.java",
+ "public class X {\n" +
+ " void foo() {\n" +
+ " new X();\n" +
+ " }\n" +
+ "}\n"
+ },
+ "\"" + OUTPUT_DIR + File.separator + "X.java\""
+ + " -err:+unused"
+ + " -d \"" + OUTPUT_DIR + File.separator + "bin/\"",
+ "",
+ "----------\n" +
+ "1. ERROR in ---OUTPUT_DIR_PLACEHOLDER---/X.java (at line 3)\n" +
+ " new X();\n" +
+ " ^^^^^^^\n" +
+ "The allocated object is never used\n" +
+ "----------\n" +
+ "1 problem (1 error)\n",
+ true);
+
+}
}
diff --git a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java
index daf0b505bd..600985b755 100644
--- a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java
+++ b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java
@@ -4519,14 +4519,18 @@ private void handleErrorOrWarningToken(String token, boolean isEnabling, int sev
setSeverity(CompilerOptions.OPTION_ReportUnqualifiedFieldAccess, severity, isEnabling);
return;
} else if (token.equals("unused")) { //$NON-NLS-1$
+ setSeverity(CompilerOptions.OPTION_ReportDeadCode, severity, isEnabling);
+ setSeverity(CompilerOptions.OPTION_ReportRedundantSuperinterface, severity, isEnabling);
+ setSeverity(CompilerOptions.OPTION_ReportRedundantSpecificationOfTypeArguments, severity, isEnabling);
+ setSeverity(CompilerOptions.OPTION_ReportUnusedDeclaredThrownException, severity, isEnabling);
+ setSeverity(CompilerOptions.OPTION_ReportUnusedExceptionParameter, severity, isEnabling);
+ setSeverity(CompilerOptions.OPTION_ReportUnusedImport, severity, isEnabling);
+ setSeverity(CompilerOptions.OPTION_ReportUnusedLabel, severity, isEnabling);
setSeverity(CompilerOptions.OPTION_ReportUnusedLocal, severity, isEnabling);
+ setSeverity(CompilerOptions.OPTION_ReportUnusedObjectAllocation, severity,isEnabling);
setSeverity(CompilerOptions.OPTION_ReportUnusedParameter, severity, isEnabling);
- setSeverity(CompilerOptions.OPTION_ReportUnusedImport, severity, isEnabling);
setSeverity(CompilerOptions.OPTION_ReportUnusedPrivateMember, severity, isEnabling);
- setSeverity(CompilerOptions.OPTION_ReportUnusedDeclaredThrownException, severity, isEnabling);
- setSeverity(CompilerOptions.OPTION_ReportUnusedLabel, severity, isEnabling);
setSeverity(CompilerOptions.OPTION_ReportUnusedTypeArgumentsForMethodInvocation, severity, isEnabling);
- setSeverity(CompilerOptions.OPTION_ReportRedundantSpecificationOfTypeArguments, severity, isEnabling);
setSeverity(CompilerOptions.OPTION_ReportUnusedTypeParameter, severity,isEnabling);
return;
} else if (token.equals("unusedParam")) { //$NON-NLS-1$
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java
index aeb5409f5d..d3954dfd37 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/CompilerOptions.java
@@ -1073,18 +1073,18 @@ public class CompilerOptions {
return "dep-ann"; //$NON-NLS-1$
case RawTypeReference :
return "rawtypes"; //$NON-NLS-1$
- case UnusedLabel :
- case UnusedTypeArguments :
+ case DeadCode :
case RedundantSuperinterface :
- case UnusedLocalVariable :
- case UnusedArgument :
+ case RedundantSpecificationOfTypeArguments :
+ case UnusedDeclaredThrownException :
case UnusedExceptionParameter :
case UnusedImport :
- case UnusedPrivateMember :
- case UnusedDeclaredThrownException :
- case DeadCode :
+ case UnusedLabel :
+ case UnusedLocalVariable :
case UnusedObjectAllocation :
- case RedundantSpecificationOfTypeArguments :
+ case UnusedArgument : // OPTION_ReportUnusedParameter
+ case UnusedPrivateMember :
+ case UnusedTypeArguments : // OPTION_ReportUnusedTypeArgumentsForMethodInvocation
case UnusedTypeParameter:
return "unused"; //$NON-NLS-1$
case DiscouragedReference :

Back to the top