@@ -65,6 +65,8 @@ public Duration getEstimatedEffortPerOccurrence() {
6565 rspecRulesReplaceTypeMap .put ("java.util.AbstractSequentialList" , "java.util.List" );
6666 rspecRulesReplaceTypeMap .put ("java.util.ArrayList" , "java.util.List" );
6767 rspecRulesReplaceTypeMap .put ("java.util.concurrent.CopyOnWriteArrayList" , "java.util.List" );
68+ rspecRulesReplaceTypeMap .put ("java.util.LinkedList" , "java.util.List" );
69+ rspecRulesReplaceTypeMap .put ("java.util.Stack" , "java.util.List" );
6870 rspecRulesReplaceTypeMap .put ("java.util.Vector" , "java.util.List" );
6971 // Map
7072 rspecRulesReplaceTypeMap .put ("java.util.AbstractMap" , "java.util.Map" );
@@ -73,17 +75,20 @@ public Duration getEstimatedEffortPerOccurrence() {
7375 rspecRulesReplaceTypeMap .put ("java.util.Hashtable" , "java.util.Map" );
7476 rspecRulesReplaceTypeMap .put ("java.util.IdentityHashMap" , "java.util.Map" );
7577 rspecRulesReplaceTypeMap .put ("java.util.LinkedHashMap" , "java.util.Map" );
78+ rspecRulesReplaceTypeMap .put ("java.util.TreeMap" , "java.util.Map" );
7679 rspecRulesReplaceTypeMap .put ("java.util.WeakHashMap" , "java.util.Map" );
7780 // ConcurrentMap
7881 rspecRulesReplaceTypeMap .put ("java.util.concurrent.ConcurrentHashMap" , "java.util.concurrent.ConcurrentMap" );
7982 rspecRulesReplaceTypeMap .put ("java.util.concurrent.ConcurrentSkipListMap" , "java.util.concurrent.ConcurrentMap" );
8083 // Queue
8184 rspecRulesReplaceTypeMap .put ("java.util.AbstractQueue" , "java.util.Queue" );
8285 rspecRulesReplaceTypeMap .put ("java.util.concurrent.ConcurrentLinkedQueue" , "java.util.Queue" );
86+ rspecRulesReplaceTypeMap .put ("java.util.PriorityQueue" , "java.util.Queue" );
8387 // Set
8488 rspecRulesReplaceTypeMap .put ("java.util.AbstractSet" , "java.util.Set" );
8589 rspecRulesReplaceTypeMap .put ("java.util.HashSet" , "java.util.Set" );
8690 rspecRulesReplaceTypeMap .put ("java.util.LinkedHashSet" , "java.util.Set" );
91+ rspecRulesReplaceTypeMap .put ("java.util.TreeSet" , "java.util.Set" );
8792 rspecRulesReplaceTypeMap .put ("java.util.concurrent.CopyOnWriteArraySet" , "java.util.Set" );
8893 }
8994
@@ -279,6 +284,16 @@ private static class InterfaceIncompatibleMethodDetector extends JavaIsoVisitor<
279284 "addElement" , "capacity" , "copyInto" , "elementAt" , "elements" , "ensureCapacity" , "insertElementAt" , "removeAllElements" , "removeElement" , "removeElementAt" , "setElementAt" , "setSize" , "trimToSize" ))));
280285 nonInterfaceMethods .put ("java.util.ArrayList" , unmodifiableSet (new HashSet <>(Arrays .asList (
281286 "ensureCapacity" , "trimToSize" ))));
287+ nonInterfaceMethods .put ("java.util.LinkedList" , unmodifiableSet (new HashSet <>(Arrays .asList (
288+ // These have been promoted to Java 21 SequencedCollection interface, but we don't check that here
289+ "addFirst" , "addLast" , "getFirst" , "getLast" , "removeFirst" , "removeLast" ,
290+ "descendingIterator" , "offerFirst" , "offerLast" , "peekFirst" , "peekLast" , "pollFirst" , "pollLast" , "pop" , "push" , "removeFirstOccurrence" , "removeLastOccurrence" ))));
291+ nonInterfaceMethods .put ("java.util.Stack" , unmodifiableSet (new HashSet <>(Arrays .asList (
292+ "empty" , "peek" , "pop" , "push" , "search" ))));
293+ nonInterfaceMethods .put ("java.util.TreeMap" , unmodifiableSet (new HashSet <>(Arrays .asList (
294+ "ceilingEntry" , "ceilingKey" , "descendingKeySet" , "descendingMap" , "firstEntry" , "firstKey" , "floorEntry" , "floorKey" , "headMap" , "higherEntry" , "higherKey" , "lastEntry" , "lastKey" , "lowerEntry" , "lowerKey" , "navigableKeySet" , "pollFirstEntry" , "pollLastEntry" , "subMap" , "tailMap" ))));
295+ nonInterfaceMethods .put ("java.util.TreeSet" , unmodifiableSet (new HashSet <>(Arrays .asList (
296+ "ceiling" , "descendingIterator" , "descendingSet" , "first" , "floor" , "headSet" , "higher" , "last" , "lower" , "pollFirst" , "pollLast" , "subSet" , "tailSet" ))));
282297 }
283298
284299 @ Override
0 commit comments