diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTType.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTType.java index b398ca9a73..bdd26c4f59 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTType.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTType.java @@ -23,11 +23,11 @@ public class ASTType extends AbstractJavaTypeNode { } public String getTypeImage() { - ASTPrimitiveType prim = getFirstDescendantOfType(ASTPrimitiveType.class); - if (prim != null) { - return prim.getImage(); + ASTClassOrInterfaceType refType = getFirstDescendantOfType(ASTClassOrInterfaceType.class); + if (refType != null) { + return refType.getImage(); } - return getFirstDescendantOfType(ASTClassOrInterfaceType.class).getImage(); + return getFirstDescendantOfType(ASTPrimitiveType.class).getImage(); } public int getArrayDepth() { diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/unusedcode/xml/UnusedPrivateMethod.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/unusedcode/xml/UnusedPrivateMethod.xml index 1b66422495..b5d810c04b 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/unusedcode/xml/UnusedPrivateMethod.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/unusedcode/xml/UnusedPrivateMethod.xml @@ -1531,4 +1531,22 @@ public class Something { } ]]> + + + #521 UnusedPrivateMethod returns false positives with primitive data type in map argument + 0 + map = new LinkedHashMap<>(); + addToMap(map); + } + + private void addToMap(Map map) { + map.put("foo", new double[]{0., 1.}); + } + } + ]]> + +