about summary refs log tree commit diff
path: root/src/librusti/program.rs
diff options
context:
space:
mode:
authorblake2-ppc <blake2-ppc>2013-07-16 16:39:24 +0200
committerblake2-ppc <blake2-ppc>2013-07-18 15:03:59 +0200
commit7ef9e722b8a499cd0b84ab175a366cbe536a86e4 (patch)
tree2086bd672f6d69ed4188ad3f64d3031fb3dde8f8 /src/librusti/program.rs
parent0335339c184e46eac958841e0e021dbdab873efd (diff)
downloadrust-7ef9e722b8a499cd0b84ab175a366cbe536a86e4.tar.gz
rust-7ef9e722b8a499cd0b84ab175a366cbe536a86e4.zip
hashmap: Remove .consume() has rename .consume_iter() to .consume()
Updated all users of HashMap, HashSet old .consume() to use .consume()
with a for loop.

Since .consume() takes the map or set by value, it needs awkward
extra code to in librusti's use of @mut HashMap, where the map value can
not be directly moved out.
Diffstat (limited to 'src/librusti/program.rs')
-rw-r--r--src/librusti/program.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/librusti/program.rs b/src/librusti/program.rs
index e3a32801ca9..276ad74e1d3 100644
--- a/src/librusti/program.rs
+++ b/src/librusti/program.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 use std::cast;
+use std::util;
 use std::hashmap::HashMap;
 use std::local_data;
 
@@ -165,7 +166,8 @@ impl Program {
             None => {}
         }
 
-        do self.newvars.consume |name, var| {
+        let newvars = util::replace(&mut self.newvars, HashMap::new());
+        for newvars.consume().advance |(name, var)| {
             self.local_vars.insert(name, var);
         }
 
@@ -230,7 +232,8 @@ impl Program {
     /// it updates this cache with the new values of each local variable.
     pub fn consume_cache(&mut self) {
         let map = local_data::pop(tls_key).expect("tls is empty");
-        do map.consume |name, value| {
+        let cons_map = util::replace(map, HashMap::new());
+        for cons_map.consume().advance |(name, value)| {
             match self.local_vars.find_mut(&name) {
                 Some(v) => { v.data = (*value).clone(); }
                 None => { fail!("unknown variable %s", name) }
@@ -341,7 +344,8 @@ impl Program {
         }
 
         // I'm not an @ pointer, so this has to be done outside.
-        do newvars.consume |k, v| {
+        let cons_newvars = util::replace(newvars, HashMap::new());
+        for cons_newvars.consume().advance |(k, v)| {
             self.newvars.insert(k, v);
         }