merged from trunk: Fixed ClassCastException on generic method in BeanMembersShouldSerialize
git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/branches/pmd/4.2.x@6466 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
parent
037cf154f7
commit
c07f274b4e
@ -2,6 +2,7 @@
|
||||
|
||||
Fixed bug 1481051 - false + UnusedNullCheckInEquals (and other false positives too)
|
||||
Fixed bug 1943204 - Ant task: <ruleset> path should be relative to Ant basedir
|
||||
Fixed ClassCastException on generic method in BeanMembersShouldSerialize
|
||||
|
||||
August 31, 2008 - 4.2.3:
|
||||
|
||||
|
@ -158,4 +158,17 @@ public class Foo {
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
</test-data>
|
||||
<test-code>
|
||||
<description><![CDATA[
|
||||
ClassCastException on generic method
|
||||
]]></description>
|
||||
<expected-problems>0</expected-problems>
|
||||
<code><![CDATA[
|
||||
public abstract class List<A> implements Iterable<A> {
|
||||
public static <A> F<List<A>, Boolean> isEmpty() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
</test-data>
|
||||
|
@ -12,6 +12,7 @@ import net.sourceforge.pmd.AbstractRule;
|
||||
import net.sourceforge.pmd.PropertyDescriptor;
|
||||
import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration;
|
||||
import net.sourceforge.pmd.ast.ASTCompilationUnit;
|
||||
import net.sourceforge.pmd.ast.ASTMethodDeclaration;
|
||||
import net.sourceforge.pmd.ast.ASTMethodDeclarator;
|
||||
import net.sourceforge.pmd.ast.ASTPrimitiveType;
|
||||
import net.sourceforge.pmd.ast.ASTResultType;
|
||||
@ -97,7 +98,7 @@ public class BeanMembersShouldSerializeRule extends AbstractRule {
|
||||
return true;
|
||||
}
|
||||
if (methodName.startsWith("is")) {
|
||||
ASTResultType ret = (ASTResultType) meth.jjtGetParent().jjtGetChild(0);
|
||||
ASTResultType ret = ((ASTMethodDeclaration) meth.jjtGetParent()).getResultType();
|
||||
List primitives = ret.findChildrenOfType(ASTPrimitiveType.class);
|
||||
if (!primitives.isEmpty() && ((ASTPrimitiveType) primitives.get(0)).isBoolean()) {
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user