diff options
author | Stephan Herrmann | 2019-10-03 19:36:44 +0000 |
---|---|---|
committer | Stephan Herrmann | 2019-10-03 20:33:18 +0000 |
commit | 9f7623dbf89718c901b626f8024cbc33b5147b6e (patch) | |
tree | fdce4467994e08de0297b18a49a4e27e1689f545 | |
parent | 5ca2ca232f8cb29b05a8a4d67dda881f1f0670a1 (diff) | |
download | eclipse.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
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 : |