Skip to content

Commit aff3db2

Browse files
committed
use mutable function argument syntax in treemap
1 parent e447521 commit aff3db2

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

src/libstd/treemap.rs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -526,9 +526,8 @@ pure fn each_reverse<K: Ord, V>(node: &Option<~TreeNode<K, V>>,
526526
}
527527

528528
// Remove left horizontal link by rotating right
529-
fn skew<K: Ord, V>(node: ~TreeNode<K, V>) -> ~TreeNode<K, V> {
529+
fn skew<K: Ord, V>(mut node: ~TreeNode<K, V>) -> ~TreeNode<K, V> {
530530
if node.left.map_default(false, |x| x.level == node.level) {
531-
let mut node = node;
532531
let mut save = node.left.swap_unwrap();
533532
node.left <-> save.right; // save.right now None
534533
save.right = Some(node);
@@ -540,10 +539,9 @@ fn skew<K: Ord, V>(node: ~TreeNode<K, V>) -> ~TreeNode<K, V> {
540539

541540
// Remove dual horizontal link by rotating left and increasing level of
542541
// the parent
543-
fn split<K: Ord, V>(node: ~TreeNode<K, V>) -> ~TreeNode<K, V> {
542+
fn split<K: Ord, V>(mut node: ~TreeNode<K, V>) -> ~TreeNode<K, V> {
544543
if node.right.map_default(false,
545544
|x| x.right.map_default(false, |y| y.level == node.level)) {
546-
let mut node = node;
547545
let mut save = node.right.swap_unwrap();
548546
node.right <-> save.left; // save.left now None
549547
save.left = Some(node);
@@ -582,8 +580,7 @@ fn remove<K: Ord, V>(node: &mut Option<~TreeNode<K, V>>, key: &K) -> bool {
582580
fn heir_swap<K: Ord, V>(node: &mut TreeNode<K, V>,
583581
child: &mut Option<~TreeNode<K, V>>) {
584582
// *could* be done without recursion, but it won't borrow check
585-
do child.mutate |child| {
586-
let mut child = child;
583+
do child.mutate |mut child| {
587584
if child.right.is_some() {
588585
heir_swap(&mut *node, &mut child.right);
589586
} else {
@@ -636,15 +633,13 @@ fn remove<K: Ord, V>(node: &mut Option<~TreeNode<K, V>>, key: &K) -> bool {
636633
save.level -= 1;
637634

638635
if right_level > save.level {
639-
do save.right.mutate |x| {
640-
let mut x = x; x.level = save.level; x
641-
}
636+
do save.right.mutate |mut x| { x.level = save.level; x }
642637
}
643638

644639
save = skew(save);
645640

646-
do save.right.mutate |right| {
647-
let mut right = skew(right);
641+
do save.right.mutate |mut right| {
642+
right = skew(right);
648643
right.right.mutate(skew);
649644
right
650645
}

0 commit comments

Comments
 (0)