forked from phoedos/pmd
Revert "support TreeSet/Map"
This reverts commit 209fc134621862b7043dd05ac72265cd21a838d2.
This commit is contained in:
@ -7,8 +7,6 @@ package net.sourceforge.pmd.lang.java.rule.bestpractices;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import net.sourceforge.pmd.lang.java.ast.ASTConstructorCall;
|
||||
import net.sourceforge.pmd.lang.java.rule.AbstractJavaRulechainRule;
|
||||
@ -35,11 +33,8 @@ public class UseEnumCollectionsRule extends AbstractJavaRulechainRule {
|
||||
JTypeMirror builtType = call.getTypeMirror();
|
||||
|
||||
if (!builtType.isRaw()) {
|
||||
boolean isMap = TypeTestUtil.isExactlyA(HashMap.class, builtType)
|
||||
|| TypeTestUtil.isExactlyA(TreeMap.class, builtType);
|
||||
if (isMap
|
||||
|| TypeTestUtil.isExactlyA(HashSet.class, builtType)
|
||||
|| TypeTestUtil.isExactlyA(TreeSet.class, builtType)) {
|
||||
boolean isMap = TypeTestUtil.isExactlyA(HashMap.class, builtType);
|
||||
if (isMap || TypeTestUtil.isExactlyA(HashSet.class, builtType)) {
|
||||
|
||||
List<JTypeMirror> typeArgs = ((JClassType) builtType).getTypeArgs();
|
||||
JTypeDeclSymbol keySymbol = typeArgs.get(0).getSymbol();
|
||||
|
@ -1731,9 +1731,9 @@ public class Foo {
|
||||
class="net.sourceforge.pmd.lang.java.rule.bestpractices.UseEnumCollectionsRule"
|
||||
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_bestpractices.html#useenumcollections">
|
||||
<description>
|
||||
Wherever possible, use `EnumSet` or `EnumMap` instead of more generic set and map implementations when the keys
|
||||
are of an enum type. The specialized collections are more space- and time-efficient.
|
||||
This rule reports constructor expressions for hash and tree sets or maps whose key type is an enum type.
|
||||
Wherever possible, use `EnumSet` or `EnumMap` instead of `HashSet` and `HashMap` when the keys
|
||||
are of an enum type. This rule reports constructor expressions for hash sets or maps whose key
|
||||
type is an enum type.
|
||||
</description>
|
||||
<priority>3</priority>
|
||||
<example>
|
||||
|
@ -6,11 +6,10 @@
|
||||
|
||||
<test-code>
|
||||
<description>Use enumset</description>
|
||||
<expected-problems>2</expected-problems>
|
||||
<expected-linenumbers>8,12</expected-linenumbers>
|
||||
<expected-problems>1</expected-problems>
|
||||
<expected-linenumbers>8</expected-linenumbers>
|
||||
<expected-messages>
|
||||
<message>This collection could be an EnumSet</message>
|
||||
<message>This collection could be an EnumSet</message>
|
||||
</expected-messages>
|
||||
<code><![CDATA[
|
||||
import java.util.*;
|
||||
@ -23,10 +22,6 @@
|
||||
Set<E> set = new HashSet<>();
|
||||
return set.contains(E.A);
|
||||
}
|
||||
public static boolean bar2() {
|
||||
Set<E> set = new TreeSet<>();
|
||||
return set.contains(E.A);
|
||||
}
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
@ -35,11 +30,10 @@
|
||||
|
||||
<test-code>
|
||||
<description>Use enummap</description>
|
||||
<expected-problems>2</expected-problems>
|
||||
<expected-linenumbers>7,10</expected-linenumbers>
|
||||
<expected-problems>1</expected-problems>
|
||||
<expected-linenumbers>7</expected-linenumbers>
|
||||
<expected-messages>
|
||||
<message>This collection could be an EnumMap</message>
|
||||
<message>This collection could be an EnumMap</message>
|
||||
</expected-messages>
|
||||
<code><![CDATA[
|
||||
import java.util.*;
|
||||
@ -50,9 +44,6 @@
|
||||
public static Map<E, Boolean> bar() {
|
||||
return new HashMap<>();
|
||||
}
|
||||
public static Map<E, Boolean> bar() {
|
||||
return new TreeMap<>();
|
||||
}
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
|
Reference in New Issue
Block a user