]> git.lizzy.rs Git - rust.git/commitdiff
treemap: use each_mut instead of mutate
authorDaniel Micay <danielmicay@gmail.com>
Fri, 15 Mar 2013 18:14:03 +0000 (14:14 -0400)
committerDaniel Micay <danielmicay@gmail.com>
Fri, 15 Mar 2013 18:14:03 +0000 (14:14 -0400)
src/libstd/treemap.rs

index f51df08e659f8f51c014f087e6f184711faecb30..8e204014975b50f3fb26fc32343e0bdc761d5a1b 100644 (file)
@@ -636,14 +636,13 @@ fn remove<K: TotalOrd, V>(node: &mut Option<~TreeNode<K, V>>,
     fn heir_swap<K: TotalOrd, V>(node: &mut ~TreeNode<K, V>,
                             child: &mut Option<~TreeNode<K, V>>) {
         // *could* be done without recursion, but it won't borrow check
-        do child.mutate |mut child| {
-            if child.right.is_some() {
-                heir_swap(node, &mut child.right);
+        for child.each_mut |x| {
+            if x.right.is_some() {
+                heir_swap(node, &mut x.right);
             } else {
-                node.key <-> child.key;
-                node.value <-> child.value;
+                node.key <-> x.key;
+                node.value <-> x.value;
             }
-            child
         }
     }
 
@@ -689,7 +688,7 @@ fn heir_swap<K: TotalOrd, V>(node: &mut ~TreeNode<K, V>,
                 save.level -= 1;
 
                 if right_level > save.level {
-                    do save.right.mutate |mut x| { x.level = save.level; x }
+                    for save.right.each_mut |x| { x.level = save.level }
                 }
 
                 skew(save);