Skip to content

Commit b86674e

Browse files
committedFeb 14, 2021
Auto merge of #81956 - ssomers:btree_post_75200, r=Mark-Simulacrum
BTree: remove outdated traces of coercions The introduction of `marker::ValMut` (#75200) meant iterators no longer see mutable keys but their code still pretends it does. And settle on the majority style `Some(unsafe {…})` over `unsafe { Some(…) }`. r? `@Mark-Simulacrum`
2 parents 8e54a21 + f81358d commit b86674e

File tree

1 file changed

+7
-19
lines changed
  • library/alloc/src/collections/btree

1 file changed

+7
-19
lines changed
 

‎library/alloc/src/collections/btree/map.rs

+7-19
Original file line numberDiff line numberDiff line change
@@ -1279,7 +1279,7 @@ impl<'a, K: 'a, V: 'a> Iterator for Iter<'a, K, V> {
12791279
None
12801280
} else {
12811281
self.length -= 1;
1282-
unsafe { Some(self.range.next_unchecked()) }
1282+
Some(unsafe { self.range.next_unchecked() })
12831283
}
12841284
}
12851285

@@ -1310,7 +1310,7 @@ impl<'a, K: 'a, V: 'a> DoubleEndedIterator for Iter<'a, K, V> {
13101310
None
13111311
} else {
13121312
self.length -= 1;
1313-
unsafe { Some(self.range.next_back_unchecked()) }
1313+
Some(unsafe { self.range.next_back_unchecked() })
13141314
}
13151315
}
13161316
}
@@ -1348,8 +1348,7 @@ impl<'a, K: 'a, V: 'a> Iterator for IterMut<'a, K, V> {
13481348
None
13491349
} else {
13501350
self.length -= 1;
1351-
let (k, v) = unsafe { self.range.next_unchecked() };
1352-
Some((k, v)) // coerce k from `&mut K` to `&K`
1351+
Some(unsafe { self.range.next_unchecked() })
13531352
}
13541353
}
13551354

@@ -1377,8 +1376,7 @@ impl<'a, K: 'a, V: 'a> DoubleEndedIterator for IterMut<'a, K, V> {
13771376
None
13781377
} else {
13791378
self.length -= 1;
1380-
let (k, v) = unsafe { self.range.next_back_unchecked() };
1381-
Some((k, v)) // coerce k from `&mut K` to `&K`
1379+
Some(unsafe { self.range.next_back_unchecked() })
13821380
}
13831381
}
13841382
}
@@ -1700,7 +1698,7 @@ impl<'a, K, V> Iterator for Range<'a, K, V> {
17001698
type Item = (&'a K, &'a V);
17011699

17021700
fn next(&mut self) -> Option<(&'a K, &'a V)> {
1703-
if self.is_empty() { None } else { unsafe { Some(self.next_unchecked()) } }
1701+
if self.is_empty() { None } else { Some(unsafe { self.next_unchecked() }) }
17041702
}
17051703

17061704
fn last(mut self) -> Option<(&'a K, &'a V)> {
@@ -1864,12 +1862,7 @@ impl<'a, K, V> Iterator for RangeMut<'a, K, V> {
18641862
type Item = (&'a K, &'a mut V);
18651863

18661864
fn next(&mut self) -> Option<(&'a K, &'a mut V)> {
1867-
if self.is_empty() {
1868-
None
1869-
} else {
1870-
let (k, v) = unsafe { self.next_unchecked() };
1871-
Some((k, v)) // coerce k from `&mut K` to `&K`
1872-
}
1865+
if self.is_empty() { None } else { Some(unsafe { self.next_unchecked() }) }
18731866
}
18741867

18751868
fn last(mut self) -> Option<(&'a K, &'a mut V)> {
@@ -1907,12 +1900,7 @@ impl<'a, K, V> RangeMut<'a, K, V> {
19071900
#[stable(feature = "btree_range", since = "1.17.0")]
19081901
impl<'a, K, V> DoubleEndedIterator for RangeMut<'a, K, V> {
19091902
fn next_back(&mut self) -> Option<(&'a K, &'a mut V)> {
1910-
if self.is_empty() {
1911-
None
1912-
} else {
1913-
let (k, v) = unsafe { self.next_back_unchecked() };
1914-
Some((k, v)) // coerce k from `&mut K` to `&K`
1915-
}
1903+
if self.is_empty() { None } else { Some(unsafe { self.next_back_unchecked() }) }
19161904
}
19171905
}
19181906

0 commit comments

Comments
 (0)
Please sign in to comment.