From 2b96b1773dd31ff923de4bd8adac2adbac447399 Mon Sep 17 00:00:00 2001 From: Alice Ryhl Date: Mon, 21 Sep 2020 18:57:27 +0200 Subject: [PATCH] ci: update nightly and fix all sorts of new failures (#2852) * ci: update miri flags * ci: fix doc warnings * doc: fix some links Cherry-pick of 18ed761 from #2834 * ci: cherry-pick 00a2849 From: #2793 * ci: cherry-pick 6b61212 From: #2793 Co-authored-by: Blas Rodriguez Irizar --- .github/workflows/ci.yml | 4 ++-- tokio-macros/src/lib.rs | 2 +- tokio-test/src/lib.rs | 2 +- tokio-util/src/lib.rs | 2 +- tokio/src/io/util/async_read_ext.rs | 2 +- tokio/src/lib.rs | 3 +-- tokio/src/net/udp/socket.rs | 4 ++-- tokio/src/sync/mod.rs | 4 ++-- tokio/src/time/delay_queue.rs | 28 ++++++++++++++-------------- 9 files changed, 25 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecc27a9168f..319fb0de1cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ name: CI env: RUSTFLAGS: -Dwarnings RUST_BACKTRACE: 1 - nightly: nightly-2020-07-12 + nightly: nightly-2020-09-21 minrust: 1.39.0 jobs: @@ -110,7 +110,7 @@ jobs: rm -rf tokio/tests - name: miri - run: cargo miri test --features rt-core,rt-threaded,rt-util,sync -- -- task + run: cargo miri test --features rt-core,rt-threaded,rt-util,sync task working-directory: tokio cross: diff --git a/tokio-macros/src/lib.rs b/tokio-macros/src/lib.rs index 1fd445d877c..6cdffdb03e3 100644 --- a/tokio-macros/src/lib.rs +++ b/tokio-macros/src/lib.rs @@ -6,7 +6,7 @@ rust_2018_idioms, unreachable_pub )] -#![deny(intra_doc_link_resolution_failure)] +#![cfg_attr(docsrs, deny(broken_intra_doc_links))] #![doc(test( no_crate_inject, attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_variables)) diff --git a/tokio-test/src/lib.rs b/tokio-test/src/lib.rs index 185f317b973..69b8362c4e5 100644 --- a/tokio-test/src/lib.rs +++ b/tokio-test/src/lib.rs @@ -5,7 +5,7 @@ rust_2018_idioms, unreachable_pub )] -#![deny(intra_doc_link_resolution_failure)] +#![cfg_attr(docsrs, deny(broken_intra_doc_links))] #![doc(test( no_crate_inject, attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_variables)) diff --git a/tokio-util/src/lib.rs b/tokio-util/src/lib.rs index 260c9485c26..e888e3e3e3b 100644 --- a/tokio-util/src/lib.rs +++ b/tokio-util/src/lib.rs @@ -6,7 +6,7 @@ rust_2018_idioms, unreachable_pub )] -#![deny(intra_doc_link_resolution_failure)] +#![cfg_attr(docsrs, deny(broken_intra_doc_links))] #![doc(test( no_crate_inject, attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_variables)) diff --git a/tokio/src/io/util/async_read_ext.rs b/tokio/src/io/util/async_read_ext.rs index dd280a188d7..0ab66c286d3 100644 --- a/tokio/src/io/util/async_read_ext.rs +++ b/tokio/src/io/util/async_read_ext.rs @@ -1067,7 +1067,7 @@ cfg_io_util! { /// (See also the [`crate::fs::read_to_string`] convenience function for /// reading from a file.) /// - /// [`crate::fs::read_to_string`]: crate::fs::read_to_string::read_to_string + /// [`crate::fs::read_to_string`]: fn@crate::fs::read_to_string fn read_to_string<'a>(&'a mut self, dst: &'a mut String) -> ReadToString<'a, Self> where Self: Unpin, diff --git a/tokio/src/lib.rs b/tokio/src/lib.rs index 88707c4d1c6..11a11195094 100644 --- a/tokio/src/lib.rs +++ b/tokio/src/lib.rs @@ -10,13 +10,12 @@ rust_2018_idioms, unreachable_pub )] -#![deny(intra_doc_link_resolution_failure)] +#![cfg_attr(docsrs, deny(broken_intra_doc_links))] #![doc(test( no_crate_inject, attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_variables)) ))] #![cfg_attr(docsrs, feature(doc_cfg))] -#![cfg_attr(docsrs, feature(doc_alias))] //! A runtime for writing reliable, asynchronous, and slim applications. //! diff --git a/tokio/src/net/udp/socket.rs b/tokio/src/net/udp/socket.rs index 16e537739d4..00b00d8d94f 100644 --- a/tokio/src/net/udp/socket.rs +++ b/tokio/src/net/udp/socket.rs @@ -125,7 +125,7 @@ impl UdpSocket { /// should ensure that when the remote cannot receive, the /// [`ErrorKind::WouldBlock`] is properly handled. /// - /// [`ErrorKind::WouldBlock`]: std::io::error::ErrorKind::WouldBlock + /// [`ErrorKind::WouldBlock`]: std::io::ErrorKind::WouldBlock pub fn try_send(&self, buf: &[u8]) -> io::Result { self.io.get_ref().send(buf) } @@ -209,7 +209,7 @@ impl UdpSocket { /// [`ErrorKind::WouldBlock`] is properly handled. An error can also occur /// if the IP version of the socket does not match that of `target`. /// - /// [`ErrorKind::WouldBlock`]: std::io::error::ErrorKind::WouldBlock + /// [`ErrorKind::WouldBlock`]: std::io::ErrorKind::WouldBlock pub fn try_send_to(&self, buf: &[u8], target: SocketAddr) -> io::Result { self.io.get_ref().send_to(buf, &target) } diff --git a/tokio/src/sync/mod.rs b/tokio/src/sync/mod.rs index 3d96106d2df..f93ff7bb873 100644 --- a/tokio/src/sync/mod.rs +++ b/tokio/src/sync/mod.rs @@ -399,8 +399,8 @@ //! } //! ``` //! -//! [`watch` channel]: crate::sync::watch -//! [`broadcast` channel]: crate::sync::broadcast +//! [`watch` channel]: mod@crate::sync::watch +//! [`broadcast` channel]: mod@crate::sync::broadcast //! //! # State synchronization //! diff --git a/tokio/src/time/delay_queue.rs b/tokio/src/time/delay_queue.rs index a947cc6fe4e..b02153b9e0f 100644 --- a/tokio/src/time/delay_queue.rs +++ b/tokio/src/time/delay_queue.rs @@ -27,13 +27,13 @@ use std::task::{self, Poll}; /// which it should be yielded back. /// /// Once delays have been configured, the `DelayQueue` is used via its -/// [`Stream`] implementation. [`poll`] is called. If an entry has reached its +/// [`Stream`] implementation. [`poll_expired`] is called. If an entry has reached its /// deadline, it is returned. If not, `Poll::Pending` indicating that the /// current task will be notified once the deadline has been reached. /// /// # `Stream` implementation /// -/// Items are retrieved from the queue via [`Stream::poll`]. If no delays have +/// Items are retrieved from the queue via [`DelayQueue::poll_expired`]. If no delays have /// expired, no items are returned. In this case, `NotReady` is returned and the /// current task is registered to be notified once the next item's delay has /// expired. @@ -115,8 +115,8 @@ use std::task::{self, Poll}; /// [`insert_at`]: method@Self::insert_at /// [`Key`]: struct@Key /// [`Stream`]: https://docs.rs/futures/0.1/futures/stream/trait.Stream.html -/// [`poll`]: method@Self::poll -/// [`Stream::poll`]: method@Self::poll +/// [`poll_expired`]: method@Self::poll_expired +/// [`Stream::poll_expired`]: method@Self::poll_expired /// [`DelayQueue`]: struct@DelayQueue /// [`delay_for`]: fn@super::delay_for /// [`slab`]: slab @@ -146,9 +146,9 @@ pub struct DelayQueue { /// An entry in `DelayQueue` that has expired and removed. /// -/// Values are returned by [`DelayQueue::poll`]. +/// Values are returned by [`DelayQueue::poll_expired`]. /// -/// [`DelayQueue::poll`]: method@DelayQueue::poll +/// [`DelayQueue::poll_expired`]: method@DelayQueue::poll_expired #[derive(Debug)] pub struct Expired { /// The data stored in the queue @@ -260,12 +260,12 @@ impl DelayQueue { /// of a `Duration`. /// /// `value` is stored in the queue until `when` is reached. At which point, - /// `value` will be returned from [`poll`]. If `when` has already been + /// `value` will be returned from [`poll_expired`]. If `when` has already been /// reached, then `value` is immediately made available to poll. /// /// The return value represents the insertion and is used at an argument to /// [`remove`] and [`reset`]. Note that [`Key`] is token and is reused once - /// `value` is removed from the queue either by calling [`poll`] after + /// `value` is removed from the queue either by calling [`poll_expired`] after /// `when` is reached or by calling [`remove`]. At this point, the caller /// must take care to not use the returned [`Key`] again as it may reference /// a different item in the queue. @@ -295,7 +295,7 @@ impl DelayQueue { /// # } /// ``` /// - /// [`poll`]: method@Self::poll + /// [`poll_expired`]: method@Self::poll_expired /// [`remove`]: method@Self::remove /// [`reset`]: method@Self::reset /// [`Key`]: struct@Key @@ -367,12 +367,12 @@ impl DelayQueue { /// instead of an `Instant`. /// /// `value` is stored in the queue until `when` is reached. At which point, - /// `value` will be returned from [`poll`]. If `when` has already been + /// `value` will be returned from [`poll_expired`]. If `when` has already been /// reached, then `value` is immediately made available to poll. /// /// The return value represents the insertion and is used at an argument to /// [`remove`] and [`reset`]. Note that [`Key`] is token and is reused once - /// `value` is removed from the queue either by calling [`poll`] after + /// `value` is removed from the queue either by calling [`poll_expired`] after /// `when` is reached or by calling [`remove`]. At this point, the caller /// must take care to not use the returned [`Key`] again as it may reference /// a different item in the queue. @@ -403,7 +403,7 @@ impl DelayQueue { /// # } /// ``` /// - /// [`poll`]: method@Self::poll + /// [`poll_expired`]: method@Self::poll_expired /// [`remove`]: method@Self::remove /// [`reset`]: method@Self::reset /// [`Key`]: struct@Key @@ -578,11 +578,11 @@ impl DelayQueue { /// Clears the queue, removing all items. /// - /// After calling `clear`, [`poll`] will return `Ok(Ready(None))`. + /// After calling `clear`, [`poll_expired`] will return `Ok(Ready(None))`. /// /// Note that this method has no effect on the allocated capacity. /// - /// [`poll`]: method@Self::poll + /// [`poll_expired`]: method@Self::poll_expired /// /// # Examples ///