@@ -114,13 +114,20 @@ impl<K: Clone, V: Clone> Clone for BTreeMap<K, V> {
114
114
Ok ( parent) => parent,
115
115
Err ( _) => break ' main
116
116
} ;
117
- internal_out_node = internal_out_node. ascend ( ) . ok ( ) . unwrap ( ) . into_node ( ) ;
117
+ internal_out_node = internal_out_node. ascend ( )
118
+ . ok ( )
119
+ . unwrap ( )
120
+ . into_node ( ) ;
118
121
}
119
122
}
120
123
}
121
124
122
125
let ( k, v) = internal_kv. into_kv ( ) ;
123
- internal_out_node. push ( k. clone ( ) , v. clone ( ) , create_chain ( internal_kv. into_node ( ) . height ( ) - 1 ) ) ;
126
+ internal_out_node. push (
127
+ k. clone ( ) ,
128
+ v. clone ( ) ,
129
+ create_chain ( internal_kv. into_node ( ) . height ( ) - 1 )
130
+ ) ;
124
131
125
132
in_node = first_leaf_edge ( internal_kv. right_edge ( ) . descend ( ) ) . into_node ( ) ;
126
133
out_node = first_leaf_edge ( internal_out_node. last_edge ( ) . descend ( ) ) . into_node ( ) ;
@@ -236,7 +243,13 @@ pub struct VacantEntry<'a, K: 'a, V: 'a> {
236
243
/// An occupied Entry.
237
244
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
238
245
pub struct OccupiedEntry < ' a , K : ' a , V : ' a > {
239
- handle : Handle < NodeRef < marker:: Borrowed < ' a > , K , V , marker:: Mut , marker:: LeafOrInternal > , marker:: KV > ,
246
+ handle : Handle < NodeRef <
247
+ marker:: Borrowed < ' a > ,
248
+ K , V ,
249
+ marker:: Mut ,
250
+ marker:: LeafOrInternal
251
+ > , marker:: KV > ,
252
+
240
253
length : & ' a mut usize
241
254
}
242
255
@@ -681,7 +694,7 @@ impl<K, V> IntoIterator for BTreeMap<K, V> {
681
694
let root2 = unsafe { ptr:: read ( & self . root ) . into_ref ( ) } ;
682
695
let len = self . length ;
683
696
mem:: forget ( self ) ;
684
-
697
+
685
698
IntoIter {
686
699
front : first_leaf_edge ( root1) ,
687
700
back : last_leaf_edge ( root2) ,
@@ -724,7 +737,9 @@ impl<K, V> Iterator for IntoIter<K, V> {
724
737
self . front = kv. right_edge ( ) ;
725
738
return Some ( ( k, v) ) ;
726
739
} ,
727
- Err ( last_edge) => unsafe { unwrap_unchecked ( last_edge. into_node ( ) . deallocate_and_ascend ( ) ) }
740
+ Err ( last_edge) => unsafe {
741
+ unwrap_unchecked ( last_edge. into_node ( ) . deallocate_and_ascend ( ) )
742
+ }
728
743
} ;
729
744
730
745
loop {
@@ -764,7 +779,9 @@ impl<K, V> DoubleEndedIterator for IntoIter<K, V> {
764
779
self . back = kv. left_edge ( ) ;
765
780
return Some ( ( k, v) ) ;
766
781
} ,
767
- Err ( last_edge) => unsafe { unwrap_unchecked ( last_edge. into_node ( ) . deallocate_and_ascend ( ) ) }
782
+ Err ( last_edge) => unsafe {
783
+ unwrap_unchecked ( last_edge. into_node ( ) . deallocate_and_ascend ( ) )
784
+ }
768
785
} ;
769
786
770
787
loop {
@@ -1109,7 +1126,12 @@ impl<'a, K: Ord, Q: ?Sized, V> Index<&'a Q> for BTreeMap<K, V>
1109
1126
}
1110
1127
}
1111
1128
1112
- fn first_leaf_edge < Lifetime , K , V , Mutability > ( mut node : NodeRef < Lifetime , K , V , Mutability , marker:: LeafOrInternal > ) -> Handle < NodeRef < Lifetime , K , V , Mutability , marker:: Leaf > , marker:: Edge > {
1129
+ fn first_leaf_edge < Lifetime , K , V , Mutability > (
1130
+ mut node : NodeRef < Lifetime ,
1131
+ K , V ,
1132
+ Mutability ,
1133
+ marker:: LeafOrInternal >
1134
+ ) -> Handle < NodeRef < Lifetime , K , V , Mutability , marker:: Leaf > , marker:: Edge > {
1113
1135
loop {
1114
1136
match node. force ( ) {
1115
1137
Leaf ( leaf) => return leaf. first_edge ( ) ,
@@ -1120,7 +1142,12 @@ fn first_leaf_edge<Lifetime, K, V, Mutability>(mut node: NodeRef<Lifetime, K, V,
1120
1142
}
1121
1143
}
1122
1144
1123
- fn last_leaf_edge < Lifetime , K , V , Mutability > ( mut node : NodeRef < Lifetime , K , V , Mutability , marker:: LeafOrInternal > ) -> Handle < NodeRef < Lifetime , K , V , Mutability , marker:: Leaf > , marker:: Edge > {
1145
+ fn last_leaf_edge < Lifetime , K , V , Mutability > (
1146
+ mut node : NodeRef < Lifetime ,
1147
+ K , V ,
1148
+ Mutability ,
1149
+ marker:: LeafOrInternal >
1150
+ ) -> Handle < NodeRef < Lifetime , K , V , Mutability , marker:: Leaf > , marker:: Edge > {
1124
1151
loop {
1125
1152
match node. force ( ) {
1126
1153
Leaf ( leaf) => return leaf. last_edge ( ) ,
@@ -1434,7 +1461,11 @@ enum UnderflowResult<'a, K, V> {
1434
1461
Stole ( NodeRef < marker:: Borrowed < ' a > , K , V , marker:: Mut , marker:: Internal > )
1435
1462
}
1436
1463
1437
- fn handle_underfull_node < ' a , K , V > ( node : NodeRef < marker:: Borrowed < ' a > , K , V , marker:: Mut , marker:: LeafOrInternal > ) -> UnderflowResult < ' a , K , V > {
1464
+ fn handle_underfull_node < ' a , K , V > ( node : NodeRef < marker:: Borrowed < ' a > ,
1465
+ K , V ,
1466
+ marker:: Mut ,
1467
+ marker:: LeafOrInternal > )
1468
+ -> UnderflowResult < ' a , K , V > {
1438
1469
let parent = if let Ok ( parent) = node. ascend ( ) {
1439
1470
parent
1440
1471
} else {
@@ -1464,7 +1495,7 @@ fn handle_underfull_node<'a, K, V>(node: NodeRef<marker::Borrowed<'a>, K, V, mar
1464
1495
let k = mem:: replace ( handle. reborrow_mut ( ) . into_kv_mut ( ) . 0 , k) ;
1465
1496
let v = mem:: replace ( handle. reborrow_mut ( ) . into_kv_mut ( ) . 1 , v) ;
1466
1497
1467
- // TODO : reuse cur_node?
1498
+ // FIXME : reuse cur_node?
1468
1499
if is_left {
1469
1500
match handle. reborrow_mut ( ) . right_edge ( ) . descend ( ) . force ( ) {
1470
1501
Leaf ( mut leaf) => leaf. push_front ( k, v) ,
0 commit comments