diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2012-10-26 12:16:59 +0100 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2012-10-26 12:16:59 +0100 |
commit | 6f70b5c54d67ae4e46f58b4cd531e56f69f8546c (patch) | |
tree | adbf485d6376013b087a9aec9e24767024540cb0 | |
parent | a59446c33c2710d05b793aeaaacb10acee08691e (diff) | |
parent | ef3af4f38970f7cea3d5b5a7d98a617f7b23da4e (diff) | |
download | classpath-6f70b5c54d67ae4e46f58b4cd531e56f69f8546c.tar.gz |
Merge remote-tracking branch 'ivan/ivmai4review-v3'
Conflicts:
ChangeLog
Signed-off-by: Andrew John Hughes <gnu_andrew@member.fsf.org>
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | java/util/Collections.java | 32 |
2 files changed, 34 insertions, 14 deletions
@@ -1,3 +1,19 @@ +2012-10-16 Ivan Maidanski <ivmai@mail.ru> + + * java/util/Collections.java: + (emptySet(), EmptySet.iterator(), emptyList(), emptyMap(), + EmptyMap.entrySet(), EmptyMap.keySet(), EmptyMap.values()): Suppress + "unchecked" warnings. + (emptySet(), emptyList(), emptyMap()): Don't create new instance (use + the corresponding immutable container instance); remove FIXME. + (EmptySet.equals(Object), EmptyList.equals(Object), + EmptyMap.entrySet(), EmptyMap.equals(Object), EmptyMap.keySet(), + EmptyMap.values()): Add generic typing. + (SingletonList.subList(int, int)): Use emptyList() instead of + EMPTY_LIST (to eliminate "unchecked" warning). + (SynchronizedCollection.toArray(T[])): Rename T type to E (to + suppress compiler warning about type hiding). + 2012-10-26 Andrew John Hughes <gnu_andrew@member.fsf.org> PR classpath/41689 diff --git a/java/util/Collections.java b/java/util/Collections.java index 828c6ecea..b970dd8f6 100644 --- a/java/util/Collections.java +++ b/java/util/Collections.java @@ -120,10 +120,10 @@ public class Collections * @return an empty parameterized set. * @since 1.5 */ + @SuppressWarnings("unchecked") public static final <T> Set<T> emptySet() { - /* FIXME: Could this be optimized? */ - return new EmptySet<T>(); + return (Set<T>) EMPTY_SET; } /** @@ -161,6 +161,7 @@ public class Collections * @return A non-iterating iterator. */ // This is really cheating! I think it's perfectly valid, though. + @SuppressWarnings("unchecked") public Iterator<T> iterator() { return (Iterator<T>) EMPTY_LIST.iterator(); @@ -196,7 +197,7 @@ public class Collections */ public boolean equals(Object o) { - return o instanceof Set && ((Set) o).isEmpty(); + return o instanceof Set<?> && ((Set<?>) o).isEmpty(); } /** @@ -288,10 +289,10 @@ public class Collections * @return an empty parameterized list. * @since 1.5 */ + @SuppressWarnings("unchecked") public static final <T> List<T> emptyList() { - /* FIXME: Could this be optimized? */ - return new EmptyList<T>(); + return (List<T>) EMPTY_LIST; } /** @@ -369,7 +370,7 @@ public class Collections */ public boolean equals(Object o) { - return o instanceof List && ((List) o).isEmpty(); + return o instanceof List<?> && ((List<?>) o).isEmpty(); } /** @@ -480,10 +481,10 @@ public class Collections * @return an empty parameterized map. * @since 1.5 */ + @SuppressWarnings("unchecked") public static final <K,V> Map<K,V> emptyMap() { - /* FIXME: Could this be optimized? */ - return new EmptyMap<K,V>(); + return (Map<K,V>) EMPTY_MAP; } /** @@ -511,9 +512,10 @@ public class Collections * There are no entries. * @return The empty set. */ + @SuppressWarnings("unchecked") public Set<Map.Entry<K, V>> entrySet() { - return EMPTY_SET; + return (Set<Map.Entry<K, V>>) EMPTY_SET; } // The remaining methods are optional, but provide a performance @@ -546,7 +548,7 @@ public class Collections */ public boolean equals(Object o) { - return o instanceof Map && ((Map) o).isEmpty(); + return o instanceof Map<?,?> && ((Map<?,?>) o).isEmpty(); } /** @@ -572,9 +574,10 @@ public class Collections * No entries. * @return The empty set. */ + @SuppressWarnings("unchecked") public Set<K> keySet() { - return EMPTY_SET; + return (Set<K>) EMPTY_SET; } /** @@ -601,9 +604,10 @@ public class Collections * Collection, will work. Besides, that's what the JDK uses! * @return The empty set. */ + @SuppressWarnings("unchecked") public Collection<V> values() { - return EMPTY_SET; + return (Collection<V>) EMPTY_SET; } /** @@ -1854,7 +1858,7 @@ public class Collections public List<T> subList(int from, int to) { if (from == to && (to == 0 || to == 1)) - return EMPTY_LIST; + return emptyList(); if (from == 0 && to == 1) return this; if (from > to) @@ -2480,7 +2484,7 @@ public class Collections * @throws ArrayStoreException if the type of any element of the * collection is not a subtype of the element type of a. */ - public <T> T[] toArray(T[] a) + public <E> E[] toArray(E[] a) { synchronized (mutex) { |