[java] Verify UnnecessaryLocalBeforeReturn #4239

Fixes #4239
This commit is contained in:
Andreas Dangel
2024-02-29 08:51:13 +01:00
parent ce8ca0652d
commit 87f2241f3a
2 changed files with 27 additions and 0 deletions

View File

@ -279,6 +279,7 @@ The rules have been moved into categories with PMD 6.
* [#4625](https://github.com/pmd/pmd/issues/4625): \[java] UnusedPrivateMethod false positive: Autoboxing into Number
* java-codestyle
* [#2847](https://github.com/pmd/pmd/issues/2847): \[java] New Rule: Use Explicit Types
* [#4239](https://github.com/pmd/pmd/issues/4239): \[java] UnnecessaryLocalBeforeReturn - false positive with catch clause
* [#4578](https://github.com/pmd/pmd/issues/4578): \[java] CommentDefaultAccessModifier comment needs to be before annotation if present
* [#4631](https://github.com/pmd/pmd/issues/4631): \[java] UnnecessaryFullyQualifiedName fails to recognize illegal self reference in enums
* [#4645](https://github.com/pmd/pmd/issues/4645): \[java] CommentDefaultAccessModifier - False Positive with JUnit5's ParameterizedTest
@ -1427,6 +1428,7 @@ Language specific fixes:
* [#3221](https://github.com/pmd/pmd/issues/3221): \[java] PrematureDeclaration false positive for unused variables
* [#3238](https://github.com/pmd/pmd/issues/3238): \[java] Improve ExprContext, fix FNs of UnnecessaryCast
* [#3500](https://github.com/pmd/pmd/pull/3500): \[java] UnnecessaryBoxing - check for Integer.valueOf(String) calls
* [#4239](https://github.com/pmd/pmd/issues/4239): \[java] UnnecessaryLocalBeforeReturn - false positive with catch clause
* [#4268](https://github.com/pmd/pmd/issues/4268): \[java] CommentDefaultAccessModifier: false positive with TestNG annotations
* [#4273](https://github.com/pmd/pmd/issues/4273): \[java] CommentDefaultAccessModifier ignoredAnnotations should include "org.junit.jupiter.api.extension.RegisterExtension" by default
* [#4357](https://github.com/pmd/pmd/pull/4357): \[java] Fix IllegalStateException in UseDiamondOperator rule

View File

@ -314,4 +314,29 @@ public class UnnecessaryLocal {
}
]]></code>
</test-code>
<test-code>
<description>[java] UnnecessaryLocalBeforeReturn - false positive with catch clause</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
public class Example {
public Example() {
Exception result = attempt(() -> {});
if (result != null) {
throw new RuntimeException(result);
}
}
private Exception attempt(Runnable task) {
try {
task.run();
return null;
} catch (Exception e) {
// src/Example.java:15: UnnecessaryLocalBeforeReturn: Consider simply returning the value vs storing it in local variable 'e'
return e;
}
}
}
]]></code>
</test-code>
</test-data>