Skip to content

Commit 81a360f

Browse files
authored
Rollup merge of #70843 - ssomers:btree_drain_filter_epilogue, r=Amanieu
Remove the Ord bound that was plaguing drain_filter Now that #70795 made it superfluous. Also removes superfluous lifetime specifiers (at least I think they are).
2 parents dff5a11 + 6ee7e8c commit 81a360f

File tree

2 files changed

+21
-45
lines changed

2 files changed

+21
-45
lines changed

src/liballoc/collections/btree/map.rs

+12-29
Original file line numberDiff line numberDiff line change
@@ -1727,52 +1727,44 @@ impl<K, V> Clone for Values<'_, K, V> {
17271727
#[unstable(feature = "btree_drain_filter", issue = "70530")]
17281728
pub struct DrainFilter<'a, K, V, F>
17291729
where
1730-
K: 'a + Ord, // This Ord bound should be removed before stabilization.
1730+
K: 'a,
17311731
V: 'a,
17321732
F: 'a + FnMut(&K, &mut V) -> bool,
17331733
{
17341734
pred: F,
17351735
inner: DrainFilterInner<'a, K, V>,
17361736
}
1737-
pub(super) struct DrainFilterInner<'a, K, V>
1738-
where
1739-
K: 'a + Ord,
1740-
V: 'a,
1741-
{
1737+
pub(super) struct DrainFilterInner<'a, K: 'a, V: 'a> {
17421738
length: &'a mut usize,
17431739
cur_leaf_edge: Option<Handle<NodeRef<marker::Mut<'a>, K, V, marker::Leaf>, marker::Edge>>,
17441740
}
17451741

17461742
#[unstable(feature = "btree_drain_filter", issue = "70530")]
1747-
impl<'a, K, V, F> Drop for DrainFilter<'a, K, V, F>
1743+
impl<K, V, F> Drop for DrainFilter<'_, K, V, F>
17481744
where
1749-
K: 'a + Ord,
1750-
V: 'a,
1751-
F: 'a + FnMut(&K, &mut V) -> bool,
1745+
F: FnMut(&K, &mut V) -> bool,
17521746
{
17531747
fn drop(&mut self) {
17541748
self.for_each(drop);
17551749
}
17561750
}
17571751

17581752
#[unstable(feature = "btree_drain_filter", issue = "70530")]
1759-
impl<'a, K, V, F> fmt::Debug for DrainFilter<'a, K, V, F>
1753+
impl<K, V, F> fmt::Debug for DrainFilter<'_, K, V, F>
17601754
where
1761-
K: 'a + fmt::Debug + Ord,
1762-
V: 'a + fmt::Debug,
1763-
F: 'a + FnMut(&K, &mut V) -> bool,
1755+
K: fmt::Debug,
1756+
V: fmt::Debug,
1757+
F: FnMut(&K, &mut V) -> bool,
17641758
{
17651759
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
17661760
f.debug_tuple("DrainFilter").field(&self.inner.peek()).finish()
17671761
}
17681762
}
17691763

17701764
#[unstable(feature = "btree_drain_filter", issue = "70530")]
1771-
impl<'a, K, V, F> Iterator for DrainFilter<'a, K, V, F>
1765+
impl<K, V, F> Iterator for DrainFilter<'_, K, V, F>
17721766
where
1773-
K: 'a + Ord,
1774-
V: 'a,
1775-
F: 'a + FnMut(&K, &mut V) -> bool,
1767+
F: FnMut(&K, &mut V) -> bool,
17761768
{
17771769
type Item = (K, V);
17781770

@@ -1785,11 +1777,7 @@ where
17851777
}
17861778
}
17871779

1788-
impl<'a, K, V> DrainFilterInner<'a, K, V>
1789-
where
1790-
K: 'a + Ord,
1791-
V: 'a,
1792-
{
1780+
impl<'a, K: 'a, V: 'a> DrainFilterInner<'a, K, V> {
17931781
/// Allow Debug implementations to predict the next element.
17941782
pub(super) fn peek(&self) -> Option<(&K, &V)> {
17951783
let edge = self.cur_leaf_edge.as_ref()?;
@@ -1828,12 +1816,7 @@ where
18281816
}
18291817

18301818
#[unstable(feature = "btree_drain_filter", issue = "70530")]
1831-
impl<K, V, F> FusedIterator for DrainFilter<'_, K, V, F>
1832-
where
1833-
K: Ord,
1834-
F: FnMut(&K, &mut V) -> bool,
1835-
{
1836-
}
1819+
impl<K, V, F> FusedIterator for DrainFilter<'_, K, V, F> where F: FnMut(&K, &mut V) -> bool {}
18371820

18381821
#[stable(feature = "btree_range", since = "1.17.0")]
18391822
impl<'a, K, V> Iterator for Range<'a, K, V> {

src/liballoc/collections/btree/set.rs

+9-16
Original file line numberDiff line numberDiff line change
@@ -1094,40 +1094,38 @@ impl<'a, T> IntoIterator for &'a BTreeSet<T> {
10941094
#[unstable(feature = "btree_drain_filter", issue = "70530")]
10951095
pub struct DrainFilter<'a, T, F>
10961096
where
1097-
T: 'a + Ord,
1097+
T: 'a,
10981098
F: 'a + FnMut(&T) -> bool,
10991099
{
11001100
pred: F,
11011101
inner: super::map::DrainFilterInner<'a, T, ()>,
11021102
}
11031103

11041104
#[unstable(feature = "btree_drain_filter", issue = "70530")]
1105-
impl<'a, T, F> Drop for DrainFilter<'a, T, F>
1105+
impl<T, F> Drop for DrainFilter<'_, T, F>
11061106
where
1107-
T: 'a + Ord,
1108-
F: 'a + FnMut(&T) -> bool,
1107+
F: FnMut(&T) -> bool,
11091108
{
11101109
fn drop(&mut self) {
11111110
self.for_each(drop);
11121111
}
11131112
}
11141113

11151114
#[unstable(feature = "btree_drain_filter", issue = "70530")]
1116-
impl<'a, T, F> fmt::Debug for DrainFilter<'a, T, F>
1115+
impl<T, F> fmt::Debug for DrainFilter<'_, T, F>
11171116
where
1118-
T: 'a + Ord + fmt::Debug,
1119-
F: 'a + FnMut(&T) -> bool,
1117+
T: fmt::Debug,
1118+
F: FnMut(&T) -> bool,
11201119
{
11211120
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
11221121
f.debug_tuple("DrainFilter").field(&self.inner.peek().map(|(k, _)| k)).finish()
11231122
}
11241123
}
11251124

11261125
#[unstable(feature = "btree_drain_filter", issue = "70530")]
1127-
impl<'a, 'f, T, F> Iterator for DrainFilter<'a, T, F>
1126+
impl<'a, T, F> Iterator for DrainFilter<'_, T, F>
11281127
where
1129-
T: 'a + Ord,
1130-
F: 'a + 'f + FnMut(&T) -> bool,
1128+
F: 'a + FnMut(&T) -> bool,
11311129
{
11321130
type Item = T;
11331131

@@ -1143,12 +1141,7 @@ where
11431141
}
11441142

11451143
#[unstable(feature = "btree_drain_filter", issue = "70530")]
1146-
impl<'a, T, F> FusedIterator for DrainFilter<'a, T, F>
1147-
where
1148-
T: 'a + Ord,
1149-
F: 'a + FnMut(&T) -> bool,
1150-
{
1151-
}
1144+
impl<T, F> FusedIterator for DrainFilter<'_, T, F> where F: FnMut(&T) -> bool {}
11521145

11531146
#[stable(feature = "rust1", since = "1.0.0")]
11541147
impl<T: Ord> Extend<T> for BTreeSet<T> {

0 commit comments

Comments
 (0)