#1303 OverrideBothEqualsAndHashcodeRule does not work on class implements resolvable interfaces
This commit is contained in:

committed by
Andreas Dangel

parent
9b8496ab16
commit
cd8325dff3
@ -47,7 +47,7 @@ public class OverrideBothEqualsAndHashcodeRule extends AbstractJavaRule {
|
||||
if (node.jjtGetChild(ix) instanceof ASTClassOrInterfaceType) {
|
||||
ASTClassOrInterfaceType cit = (ASTClassOrInterfaceType) node.jjtGetChild(ix);
|
||||
Class<?> clazz = cit.getType();
|
||||
if (clazz != null || node.jjtGetChild(ix).hasImageEqualTo("Comparable")) {
|
||||
if (clazz != null && node.jjtGetChild(ix).hasImageEqualTo("Comparable")) {
|
||||
implementsComparable = true;
|
||||
return data;
|
||||
}
|
||||
|
@ -164,13 +164,23 @@ public class Foo {
|
||||
</test-code>
|
||||
<test-code>
|
||||
<description><![CDATA[
|
||||
implements interface other than Comparable
|
||||
implements interface other than Comparable, not resolvable
|
||||
]]></description>
|
||||
<expected-problems>1</expected-problems>
|
||||
<code><![CDATA[
|
||||
public class Foo implements C {
|
||||
public boolean equals(Object other) { return false; }
|
||||
public int compareTo(Object other) { return 42; }
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
<test-code>
|
||||
<description>implements interface other than Comparable, resolvable (#1303 OverrideBothEqualsAndHashcodeRule does not work on class implements resolvable interfaces)</description>
|
||||
<expected-problems>1</expected-problems>
|
||||
<code><![CDATA[
|
||||
public class Foo implements Runnable {
|
||||
public boolean equals(Object other) { return false; }
|
||||
public int compareTo(Object other) { return 42; }
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
|
@ -37,6 +37,7 @@
|
||||
* [#1296](https://sourceforge.net/p/pmd/bugs/1296/): PMD UnusedPrivateMethod invalid detection of 'private void method(int,boolean,Integer...)'
|
||||
* [#1298](https://sourceforge.net/p/pmd/bugs/1298/): Member variable int type with value 0xff000000 causes processing error
|
||||
* [#1299](https://sourceforge.net/p/pmd/bugs/1299/): MethodReturnsInternalArray false positive
|
||||
* [#1303](https://sourceforge.net/p/pmd/bugs/1303/): OverrideBothEqualsAndHashcodeRule does not work on class implements resolvable interfaces
|
||||
* [#1305](https://sourceforge.net/p/pmd/bugs/1305/): variable declaration inside switch causes ClassCastException
|
||||
* [#1306](https://sourceforge.net/p/pmd/bugs/1306/): False positive on duplicate when using static imports
|
||||
* [#1308](https://sourceforge.net/p/pmd/bugs/1308/): PMD runs endlessly on some generated files
|
||||
|
Reference in New Issue
Block a user