Merge branch 'issue-199' into pmd/5.5.x

Closes #203 (rebased onto pmd/5.4.x)
This commit is contained in:
Andreas Dangel
2017-01-27 17:00:33 +01:00
4 changed files with 51 additions and 3 deletions

View File

@ -230,11 +230,13 @@ public class Test {
count(*)=1 and
count(./CastExpression)=0 and
count(./EqualityExpression/MultiplicativeExpression)=0 and
count(./ConditionalExpression[@Ternary='true'])=0 and
count(./ConditionalOrExpression)=0]
|
//Expression/ConditionalOrExpression/PrimaryExpression/PrimaryPrefix/Expression[
count(*)=1 and
count(./CastExpression)=0 and
count(./ConditionalExpression[@Ternary='true'])=0 and
count(./EqualityExpression/MultiplicativeExpression)=0]
|
//Expression/ConditionalExpression/PrimaryExpression/PrimaryPrefix/Expression[
@ -242,7 +244,7 @@ public class Test {
count(./CastExpression)=0 and
count(./EqualityExpression)=0]
|
//Expression/AdditiveExpression[not(./PrimaryExpression/PrimaryPrefix/Literal[@StringLiteral = 'true'])]/PrimaryExpression[1]/PrimaryPrefix/Expression[
//Expression/AdditiveExpression[not(./PrimaryExpression/PrimaryPrefix/Literal[@StringLiteral='true'])]/PrimaryExpression[1]/PrimaryPrefix/Expression[
count(*)=1 and
not(./CastExpression) and
not(./AdditiveExpression[@Image = '-']) and
@ -263,6 +265,7 @@ public class Test {
count(./AndExpression)=0 and
count(./InclusiveOrExpression)=0 and
count(./ExclusiveOrExpression)=0 and
count(./ConditionalExpression)=0 and
count(./ConditionalAndExpression)=0 and
count(./ConditionalOrExpression)=0 and
count(./EqualityExpression)=0]

View File

@ -6,7 +6,7 @@ package net.sourceforge.pmd.lang.java.rule.unnecessary;
import net.sourceforge.pmd.testframework.SimpleAggregatorTst;
/**
* Rule tests for the runnecessary ruleset
* Rule tests for the unnecessary ruleset
*/
public class UnnecessaryRulesTest extends SimpleAggregatorTst {

View File

@ -324,6 +324,49 @@ public class Useless {
// now without the outer parenthesis - no additional violation.
boolean isSkipped3 = pokeNick.equals(pokemon.getNickname()) && renameResult.getNumber() == NicknamePokemonResponse.Result.UNSET_VALUE;
}
}
]]></code>
</test-code>
<test-code>
<description>#199 UselessParentheses false positive on multiple logical and operators</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
public class Useless {
public boolean test(Useless team) {
return (mNumber != null ? mNumber.equals(team.mNumber) : team.mNumber == null)
&& (mKey != null ? mKey.equals(team.mKey) : team.mKey == null)
&& (mTemplateKey != null ? mTemplateKey.equals(team.mTemplateKey) : team.mTemplateKey == null)
&& (mName != null ? mName.equals(team.mName) : team.mName == null);
}
}
]]></code>
</test-code>
<test-code>
<description>#199 UselessParentheses false positive on multiple logical or operators</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
public class Useless {
public boolean test(Useless team) {
return (mNumber != null ? mNumber.equals(team.mNumber) : team.mNumber == null)
|| (mKey != null ? mKey.equals(team.mKey) : team.mKey == null)
|| (mTemplateKey != null ? mTemplateKey.equals(team.mTemplateKey) : team.mTemplateKey == null)
|| (mName != null ? mName.equals(team.mName) : team.mName == null);
}
}
]]></code>
</test-code>
<test-code>
<description>#199 UselessParentheses false positive on equals operator</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
public class Useless {
public boolean test(Useless team) {
return (mNumber != null ? mNumber : team.mNumber)
== (mKey != null ? mKey : team.mKey);
}
}
]]></code>
</test-code>

View File

@ -206,6 +206,8 @@ See also [bugfix #1556](https://sourceforge.net/p/pmd/bugs/1556/).
* java-logging-java
* [#1541](https://sourceforge.net/p/pmd/bugs/1541/): \[java] InvalidSlf4jMessageFormat: False positive with placeholder and exception
* [#1551](https://sourceforge.net/p/pmd/bugs/1551/): \[java] InvalidSlf4jMessageFormat: fails with NPE
* java-unnecessary
* [#199](https://github.com/pmd/pmd/issues/199): \[java] UselessParentheses: Parentheses in return statement are incorrectly reported as useless
* XML
* [#1518](https://sourceforge.net/p/pmd/bugs/1518/): \[xml] Error while processing xml file with ".webapp" in the file or directory name
* psql