Rollup merge of #79834 - m-ou-se:bye-linked-list-extras, r=Mark-Simulacrum
Remove deprecated linked_list_extras methods. https://github.com/rust-lang/rust/issues/27794#issuecomment-667524201: > I'd say give it about 2 weeks then remove them. It's been 18 weeks. Time to remove them. :) Closes #27794.
This commit is contained in:
commit
89051d81b9
@ -1099,68 +1099,6 @@ impl<T> ExactSizeIterator for IterMut<'_, T> {}
|
||||
#[stable(feature = "fused", since = "1.26.0")]
|
||||
impl<T> FusedIterator for IterMut<'_, T> {}
|
||||
|
||||
impl<T> IterMut<'_, T> {
|
||||
/// Inserts the given element just after the element most recently returned by `.next()`.
|
||||
/// The inserted element does not appear in the iteration.
|
||||
///
|
||||
/// This method will be removed soon.
|
||||
#[inline]
|
||||
#[unstable(
|
||||
feature = "linked_list_extras",
|
||||
reason = "this is probably better handled by a cursor type -- we'll see",
|
||||
issue = "27794"
|
||||
)]
|
||||
#[rustc_deprecated(
|
||||
reason = "Deprecated in favor of CursorMut methods. This method will be removed soon.",
|
||||
since = "1.47.0"
|
||||
)]
|
||||
pub fn insert_next(&mut self, element: T) {
|
||||
match self.head {
|
||||
// `push_back` is okay with aliasing `element` references
|
||||
None => self.list.push_back(element),
|
||||
Some(head) => unsafe {
|
||||
let prev = match head.as_ref().prev {
|
||||
// `push_front` is okay with aliasing nodes
|
||||
None => return self.list.push_front(element),
|
||||
Some(prev) => prev,
|
||||
};
|
||||
|
||||
let node = Some(
|
||||
Box::leak(box Node { next: Some(head), prev: Some(prev), element }).into(),
|
||||
);
|
||||
|
||||
// Not creating references to entire nodes to not invalidate the
|
||||
// reference to `element` we handed to the user.
|
||||
(*prev.as_ptr()).next = node;
|
||||
(*head.as_ptr()).prev = node;
|
||||
|
||||
self.list.len += 1;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
/// Provides a reference to the next element, without changing the iterator.
|
||||
///
|
||||
/// This method will be removed soon.
|
||||
#[inline]
|
||||
#[unstable(
|
||||
feature = "linked_list_extras",
|
||||
reason = "this is probably better handled by a cursor type -- we'll see",
|
||||
issue = "27794"
|
||||
)]
|
||||
#[rustc_deprecated(
|
||||
reason = "Deprecated in favor of CursorMut methods. This method will be removed soon.",
|
||||
since = "1.47.0"
|
||||
)]
|
||||
pub fn peek_next(&mut self) -> Option<&mut T> {
|
||||
if self.len == 0 {
|
||||
None
|
||||
} else {
|
||||
unsafe { self.head.as_mut().map(|node| &mut node.as_mut().element) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// A cursor over a `LinkedList`.
|
||||
///
|
||||
/// A `Cursor` is like an iterator, except that it can freely seek back-and-forth.
|
||||
|
Loading…
x
Reference in New Issue
Block a user