From 7c2cd93b2bf3c84b97ea798617105a6f85529d23 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Wed, 10 May 2017 21:17:24 -0700 Subject: [PATCH] Stabilize library features for 1.18.0 Closes #38863 Closes #38980 Closes #38903 Closes #36648 --- src/doc/unstable-book/src/SUMMARY.md | 4 -- .../binary-heap-peek-mut-pop.md | 7 --- .../src/library-features/peek.md | 7 --- .../src/library-features/process-try-wait.md | 7 --- .../retain-hash-collection.md | 7 --- src/libcollections/binary_heap.rs | 2 +- src/libcollections/tests/lib.rs | 1 - src/libstd/collections/hash/map.rs | 3 +- src/libstd/collections/hash/set.rs | 53 ++++++++----------- src/libstd/net/tcp.rs | 3 +- src/libstd/net/udp.rs | 6 +-- src/libstd/process.rs | 4 +- 12 files changed, 27 insertions(+), 77 deletions(-) delete mode 100644 src/doc/unstable-book/src/library-features/binary-heap-peek-mut-pop.md delete mode 100644 src/doc/unstable-book/src/library-features/peek.md delete mode 100644 src/doc/unstable-book/src/library-features/process-try-wait.md delete mode 100644 src/doc/unstable-book/src/library-features/retain-hash-collection.md diff --git a/src/doc/unstable-book/src/SUMMARY.md b/src/doc/unstable-book/src/SUMMARY.md index 39f800591483b..f3fa49f4ef9d6 100644 --- a/src/doc/unstable-book/src/SUMMARY.md +++ b/src/doc/unstable-book/src/SUMMARY.md @@ -104,7 +104,6 @@ - [alloc](library-features/alloc.md) - [as_c_str](library-features/as-c-str.md) - [ascii_ctype](library-features/ascii-ctype.md) - - [binary_heap_peek_mut_pop](library-features/binary-heap-peek-mut-pop.md) - [box_heap](library-features/box-heap.md) - [c_void_variant](library-features/c-void-variant.md) - [char_escape_debug](library-features/char-escape-debug.md) @@ -175,17 +174,14 @@ - [panic_abort](library-features/panic-abort.md) - [panic_unwind](library-features/panic-unwind.md) - [pattern](library-features/pattern.md) - - [peek](library-features/peek.md) - [placement_in](library-features/placement-in.md) - [placement_new_protocol](library-features/placement-new-protocol.md) - [print_internals](library-features/print-internals.md) - [proc_macro_internals](library-features/proc-macro-internals.md) - - [process_try_wait](library-features/process-try-wait.md) - [question_mark_carrier](library-features/question-mark-carrier.md) - [rand](library-features/rand.md) - [range_contains](library-features/range-contains.md) - [raw](library-features/raw.md) - - [retain_hash_collection](library-features/retain-hash-collection.md) - [reverse_cmp_key](library-features/reverse-cmp-key.md) - [rt](library-features/rt.md) - [rustc_private](library-features/rustc-private.md) diff --git a/src/doc/unstable-book/src/library-features/binary-heap-peek-mut-pop.md b/src/doc/unstable-book/src/library-features/binary-heap-peek-mut-pop.md deleted file mode 100644 index f3863ab2a2abb..0000000000000 --- a/src/doc/unstable-book/src/library-features/binary-heap-peek-mut-pop.md +++ /dev/null @@ -1,7 +0,0 @@ -# `binary_heap_peek_mut_pop` - -The tracking issue for this feature is: [#38863] - -[#38863]: https://github.com/rust-lang/rust/issues/38863 - ------------------------- diff --git a/src/doc/unstable-book/src/library-features/peek.md b/src/doc/unstable-book/src/library-features/peek.md deleted file mode 100644 index c42b4e995ec58..0000000000000 --- a/src/doc/unstable-book/src/library-features/peek.md +++ /dev/null @@ -1,7 +0,0 @@ -# `peek` - -The tracking issue for this feature is: [#38980] - -[#38980]: https://github.com/rust-lang/rust/issues/38980 - ------------------------- diff --git a/src/doc/unstable-book/src/library-features/process-try-wait.md b/src/doc/unstable-book/src/library-features/process-try-wait.md deleted file mode 100644 index 3593b6423495a..0000000000000 --- a/src/doc/unstable-book/src/library-features/process-try-wait.md +++ /dev/null @@ -1,7 +0,0 @@ -# `process_try_wait` - -The tracking issue for this feature is: [#38903] - -[#38903]: https://github.com/rust-lang/rust/issues/38903 - ------------------------- diff --git a/src/doc/unstable-book/src/library-features/retain-hash-collection.md b/src/doc/unstable-book/src/library-features/retain-hash-collection.md deleted file mode 100644 index c9ba5acf02003..0000000000000 --- a/src/doc/unstable-book/src/library-features/retain-hash-collection.md +++ /dev/null @@ -1,7 +0,0 @@ -# `retain_hash_collection` - -The tracking issue for this feature is: [#36648] - -[#36648]: https://github.com/rust-lang/rust/issues/36648 - ------------------------- diff --git a/src/libcollections/binary_heap.rs b/src/libcollections/binary_heap.rs index 7d972403f65db..4e9dea09f79a0 100644 --- a/src/libcollections/binary_heap.rs +++ b/src/libcollections/binary_heap.rs @@ -268,7 +268,7 @@ impl<'a, T: Ord> DerefMut for PeekMut<'a, T> { impl<'a, T: Ord> PeekMut<'a, T> { /// Removes the peeked value from the heap and returns it. - #[unstable(feature = "binary_heap_peek_mut_pop", issue = "38863")] + #[stable(feature = "binary_heap_peek_mut_pop", since = "1.18.0")] pub fn pop(mut this: PeekMut<'a, T>) -> T { let value = this.heap.pop().unwrap(); this.sift = false; diff --git a/src/libcollections/tests/lib.rs b/src/libcollections/tests/lib.rs index eae3bf3915f60..cda8c6d59987e 100644 --- a/src/libcollections/tests/lib.rs +++ b/src/libcollections/tests/lib.rs @@ -10,7 +10,6 @@ #![deny(warnings)] -#![feature(binary_heap_peek_mut_pop)] #![feature(box_syntax)] #![feature(inclusive_range_syntax)] #![feature(collection_placement)] diff --git a/src/libstd/collections/hash/map.rs b/src/libstd/collections/hash/map.rs index 51d127f8ba79a..8c4cbb66b454d 100644 --- a/src/libstd/collections/hash/map.rs +++ b/src/libstd/collections/hash/map.rs @@ -1231,14 +1231,13 @@ impl HashMap /// # Examples /// /// ``` - /// #![feature(retain_hash_collection)] /// use std::collections::HashMap; /// /// let mut map: HashMap = (0..8).map(|x|(x, x*10)).collect(); /// map.retain(|&k, _| k % 2 == 0); /// assert_eq!(map.len(), 4); /// ``` - #[unstable(feature = "retain_hash_collection", issue = "36648")] + #[stable(feature = "retain_hash_collection", since = "1.18.0")] pub fn retain(&mut self, mut f: F) where F: FnMut(&K, &mut V) -> bool { diff --git a/src/libstd/collections/hash/set.rs b/src/libstd/collections/hash/set.rs index 7215e1bde8503..d80df5f18b610 100644 --- a/src/libstd/collections/hash/set.rs +++ b/src/libstd/collections/hash/set.rs @@ -116,8 +116,6 @@ use super::map::{self, HashMap, Keys, RandomState}; /// [`HashMap`]: struct.HashMap.html /// [`PartialEq`]: ../../std/cmp/trait.PartialEq.html /// [`RefCell`]: ../../std/cell/struct.RefCell.html - - #[derive(Clone)] #[stable(feature = "rust1", since = "1.0.0")] pub struct HashSet { @@ -658,7 +656,6 @@ impl HashSet /// # Examples /// /// ``` - /// #![feature(retain_hash_collection)] /// use std::collections::HashSet; /// /// let xs = [1,2,3,4,5,6]; @@ -666,7 +663,7 @@ impl HashSet /// set.retain(|&k| k % 2 == 0); /// assert_eq!(set.len(), 3); /// ``` - #[unstable(feature = "retain_hash_collection", issue = "36648")] + #[stable(feature = "retain_hash_collection", since = "1.18.0")] pub fn retain(&mut self, mut f: F) where F: FnMut(&T) -> bool { @@ -1041,9 +1038,7 @@ impl<'a, K> FusedIterator for Iter<'a, K> {} #[stable(feature = "std_debug", since = "1.16.0")] impl<'a, K: fmt::Debug> fmt::Debug for Iter<'a, K> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_list() - .entries(self.clone()) - .finish() + f.debug_list().entries(self.clone()).finish() } } @@ -1070,10 +1065,11 @@ impl FusedIterator for IntoIter {} #[stable(feature = "std_debug", since = "1.16.0")] impl fmt::Debug for IntoIter { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let entries_iter = self.iter.inner.iter().map(|(k, _)| k); - f.debug_list() - .entries(entries_iter) - .finish() + let entries_iter = self.iter + .inner + .iter() + .map(|(k, _)| k); + f.debug_list().entries(entries_iter).finish() } } @@ -1100,10 +1096,11 @@ impl<'a, K> FusedIterator for Drain<'a, K> {} #[stable(feature = "std_debug", since = "1.16.0")] impl<'a, K: fmt::Debug> fmt::Debug for Drain<'a, K> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let entries_iter = self.iter.inner.iter().map(|(k, _)| k); - f.debug_list() - .entries(entries_iter) - .finish() + let entries_iter = self.iter + .inner + .iter() + .map(|(k, _)| k); + f.debug_list().entries(entries_iter).finish() } } @@ -1143,12 +1140,10 @@ impl<'a, T, S> Iterator for Intersection<'a, T, S> #[stable(feature = "std_debug", since = "1.16.0")] impl<'a, T, S> fmt::Debug for Intersection<'a, T, S> where T: fmt::Debug + Eq + Hash, - S: BuildHasher, + S: BuildHasher { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_list() - .entries(self.clone()) - .finish() + f.debug_list().entries(self.clone()).finish() } } @@ -1202,12 +1197,10 @@ impl<'a, T, S> FusedIterator for Difference<'a, T, S> #[stable(feature = "std_debug", since = "1.16.0")] impl<'a, T, S> fmt::Debug for Difference<'a, T, S> where T: fmt::Debug + Eq + Hash, - S: BuildHasher, + S: BuildHasher { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_list() - .entries(self.clone()) - .finish() + f.debug_list().entries(self.clone()).finish() } } @@ -1243,12 +1236,10 @@ impl<'a, T, S> FusedIterator for SymmetricDifference<'a, T, S> #[stable(feature = "std_debug", since = "1.16.0")] impl<'a, T, S> fmt::Debug for SymmetricDifference<'a, T, S> where T: fmt::Debug + Eq + Hash, - S: BuildHasher, + S: BuildHasher { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_list() - .entries(self.clone()) - .finish() + f.debug_list().entries(self.clone()).finish() } } @@ -1269,12 +1260,10 @@ impl<'a, T, S> FusedIterator for Union<'a, T, S> #[stable(feature = "std_debug", since = "1.16.0")] impl<'a, T, S> fmt::Debug for Union<'a, T, S> where T: fmt::Debug + Eq + Hash, - S: BuildHasher, + S: BuildHasher { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_list() - .entries(self.clone()) - .finish() + f.debug_list().entries(self.clone()).finish() } } @@ -1698,7 +1687,7 @@ mod test_set { #[test] fn test_retain() { - let xs = [1,2,3,4,5,6]; + let xs = [1, 2, 3, 4, 5, 6]; let mut set: HashSet = xs.iter().cloned().collect(); set.retain(|&k| k % 2 == 0); assert_eq!(set.len(), 3); diff --git a/src/libstd/net/tcp.rs b/src/libstd/net/tcp.rs index 34229f80769ab..c1493c9c6f4ff 100644 --- a/src/libstd/net/tcp.rs +++ b/src/libstd/net/tcp.rs @@ -343,7 +343,6 @@ impl TcpStream { /// # Examples /// /// ```no_run - /// #![feature(peek)] /// use std::net::TcpStream; /// /// let stream = TcpStream::connect("127.0.0.1:8000") @@ -351,7 +350,7 @@ impl TcpStream { /// let mut buf = [0; 10]; /// let len = stream.peek(&mut buf).expect("peek failed"); /// ``` - #[unstable(feature = "peek", issue = "38980")] + #[stable(feature = "peek", since = "1.18.0")] pub fn peek(&self, buf: &mut [u8]) -> io::Result { self.0.peek(buf) } diff --git a/src/libstd/net/udp.rs b/src/libstd/net/udp.rs index cdf04f7f1a484..80151dc2b4455 100644 --- a/src/libstd/net/udp.rs +++ b/src/libstd/net/udp.rs @@ -112,7 +112,6 @@ impl UdpSocket { /// # Examples /// /// ```no_run - /// #![feature(peek)] /// use std::net::UdpSocket; /// /// let socket = UdpSocket::bind("127.0.0.1:34254").expect("couldn't bind to address"); @@ -120,7 +119,7 @@ impl UdpSocket { /// let (number_of_bytes, src_addr) = socket.peek_from(&mut buf) /// .expect("Didn't receive data"); /// ``` - #[unstable(feature = "peek", issue = "38980")] + #[stable(feature = "peek", since = "1.18.0")] pub fn peek_from(&self, buf: &mut [u8]) -> io::Result<(usize, SocketAddr)> { self.0.peek_from(buf) } @@ -638,7 +637,6 @@ impl UdpSocket { /// # Examples /// /// ```no_run - /// #![feature(peek)] /// use std::net::UdpSocket; /// /// let socket = UdpSocket::bind("127.0.0.1:34254").expect("couldn't bind to address"); @@ -649,7 +647,7 @@ impl UdpSocket { /// Err(e) => println!("peek function failed: {:?}", e), /// } /// ``` - #[unstable(feature = "peek", issue = "38980")] + #[stable(feature = "peek", since = "1.18.0")] pub fn peek(&self, buf: &mut [u8]) -> io::Result { self.0.peek(buf) } diff --git a/src/libstd/process.rs b/src/libstd/process.rs index 3896fc20a2dde..a05dfb7bffe7d 100644 --- a/src/libstd/process.rs +++ b/src/libstd/process.rs @@ -905,8 +905,6 @@ impl Child { /// Basic usage: /// /// ```no_run - /// #![feature(process_try_wait)] - /// /// use std::process::Command; /// /// let mut child = Command::new("ls").spawn().unwrap(); @@ -921,7 +919,7 @@ impl Child { /// Err(e) => println!("error attempting to wait: {}", e), /// } /// ``` - #[unstable(feature = "process_try_wait", issue = "38903")] + #[stable(feature = "process_try_wait", since = "1.18.0")] pub fn try_wait(&mut self) -> io::Result> { Ok(self.handle.try_wait()?.map(ExitStatus)) }