about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorSteven Stewart-Gallus <sstewartgallus00@mylangara.bc.ca>2013-07-17 22:35:34 -0700
committerSteven Stewart-Gallus <sstewartgallus00@mylangara.bc.ca>2013-07-21 20:10:55 -0700
commita8870dfbb527ab1c3f740ddb3d3f73a5ce5e9705 (patch)
treef1ea8b7f2c67de224910846cde8aca1fcae333bc /src/libstd
parentfc058191818e4440d36e5ed4ef61bc0a9711be11 (diff)
downloadrust-a8870dfbb527ab1c3f740ddb3d3f73a5ce5e9705.tar.gz
rust-a8870dfbb527ab1c3f740ddb3d3f73a5ce5e9705.zip
Minor cleanup of hashmap
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/hashmap.rs16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/libstd/hashmap.rs b/src/libstd/hashmap.rs
index 56774560d1d..deeda501942 100644
--- a/src/libstd/hashmap.rs
+++ b/src/libstd/hashmap.rs
@@ -255,11 +255,8 @@ impl<K:Hash + Eq,V> HashMap<K, V> {
         let len_buckets = self.buckets.len();
         let bucket = self.buckets[idx].take();
 
-        let value = match bucket {
-            None => None,
-            Some(Bucket{value, _}) => {
-                Some(value)
-            },
+        let value = do bucket.map_consume |bucket| {
+            bucket.value
         };
 
         /* re-inserting buckets may cause changes in size, so remember
@@ -505,7 +502,6 @@ impl<K: Hash + Eq, V> HashMap<K, V> {
         // `consume_rev_iter` is more efficient than `consume_iter` for vectors
         HashMapConsumeIterator {iter: self.buckets.consume_rev_iter()}
     }
-
 }
 
 impl<K: Hash + Eq, V: Clone> HashMap<K, V> {
@@ -524,14 +520,12 @@ impl<K:Hash + Eq,V:Eq> Eq for HashMap<K, V> {
     fn eq(&self, other: &HashMap<K, V>) -> bool {
         if self.len() != other.len() { return false; }
 
-        for self.iter().advance |(key, value)| {
+        do self.iter().all |(key, value)| {
             match other.find(key) {
-                None => return false,
-                Some(v) => if value != v { return false },
+                None => false,
+                Some(v) => value == v
             }
         }
-
-        true
     }
 
     fn ne(&self, other: &HashMap<K, V>) -> bool { !self.eq(other) }