From 0ae6d1ead3c04ee5340544372a047e21675a643b Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Mon, 18 Jan 2021 02:25:00 +0900 Subject: [PATCH] Use #[doc(no_inline)] on re-exports from core/std (#2324) --- futures-core/src/future.rs | 1 + futures-core/src/task/mod.rs | 1 + futures-io/src/lib.rs | 14 ++++---------- futures-task/src/lib.rs | 1 + futures-util/src/future/mod.rs | 5 ++++- futures-util/src/io/mod.rs | 13 ++++++++----- futures-util/src/task/mod.rs | 3 ++- 7 files changed, 21 insertions(+), 17 deletions(-) diff --git a/futures-core/src/future.rs b/futures-core/src/future.rs index 02460cc5a3..d9327c01e5 100644 --- a/futures-core/src/future.rs +++ b/futures-core/src/future.rs @@ -4,6 +4,7 @@ use core::ops::DerefMut; use core::pin::Pin; use core::task::{Context, Poll}; +#[doc(no_inline)] pub use core::future::Future; /// An owned dynamically typed [`Future`] for use in cases where you can't diff --git a/futures-core/src/task/mod.rs b/futures-core/src/task/mod.rs index 362b376e04..f945d5da75 100644 --- a/futures-core/src/task/mod.rs +++ b/futures-core/src/task/mod.rs @@ -6,4 +6,5 @@ mod poll; #[doc(hidden)] pub mod __internal; +#[doc(no_inline)] pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable}; diff --git a/futures-io/src/lib.rs b/futures-io/src/lib.rs index 1468ea0fac..48de896fa8 100644 --- a/futures-io/src/lib.rs +++ b/futures-io/src/lib.rs @@ -33,19 +33,13 @@ mod if_std { // Re-export some types from `std::io` so that users don't have to deal // with conflicts when `use`ing `futures::io` and `std::io`. #[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/57411 - pub use io::{ - Error as Error, - ErrorKind as ErrorKind, - Result as Result, - IoSlice as IoSlice, - IoSliceMut as IoSliceMut, - SeekFrom as SeekFrom, - }; - + #[doc(no_inline)] + pub use io::{Error, ErrorKind, Result, IoSlice, IoSliceMut, SeekFrom}; #[cfg(feature = "read-initializer")] #[cfg_attr(docsrs, doc(cfg(feature = "read-initializer")))] + #[doc(no_inline)] #[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/57411 - pub use io::Initializer as Initializer; + pub use io::Initializer; /// Read bytes asynchronously. /// diff --git a/futures-task/src/lib.rs b/futures-task/src/lib.rs index 92b4ad0d25..e2231a587b 100644 --- a/futures-task/src/lib.rs +++ b/futures-task/src/lib.rs @@ -51,4 +51,5 @@ pub use crate::noop_waker::noop_waker; #[cfg(feature = "std")] pub use crate::noop_waker::noop_waker_ref; +#[doc(no_inline)] pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable}; diff --git a/futures-util/src/future/mod.rs b/futures-util/src/future/mod.rs index ab29823a26..84e457c2f5 100644 --- a/futures-util/src/future/mod.rs +++ b/futures-util/src/future/mod.rs @@ -9,9 +9,12 @@ //! from a closure that defines its return value, and [`ready`](ready()), //! which constructs a future with an immediate defined value. +#[doc(no_inline)] +pub use core::future::Future; + #[cfg(feature = "alloc")] pub use futures_core::future::{BoxFuture, LocalBoxFuture}; -pub use futures_core::future::{FusedFuture, Future, TryFuture}; +pub use futures_core::future::{FusedFuture, TryFuture}; pub use futures_task::{FutureObj, LocalFutureObj, UnsafeFutureObj}; // Extension traits and combinators diff --git a/futures-util/src/io/mod.rs b/futures-util/src/io/mod.rs index c2822640ab..1437930f66 100644 --- a/futures-util/src/io/mod.rs +++ b/futures-util/src/io/mod.rs @@ -23,13 +23,16 @@ use crate::future::assert_future; use crate::stream::assert_stream; use std::{ptr, pin::Pin}; -pub use futures_io::{ - AsyncRead, AsyncWrite, AsyncSeek, AsyncBufRead, Error, ErrorKind, - IoSlice, IoSliceMut, Result, SeekFrom, -}; +// Re-export some types from `std::io` so that users don't have to deal +// with conflicts when `use`ing `futures::io` and `std::io`. +#[doc(no_inline)] +pub use std::io::{Error, ErrorKind, IoSlice, IoSliceMut, Result, SeekFrom}; +#[doc(no_inline)] #[cfg(feature = "read-initializer")] #[cfg_attr(docsrs, doc(cfg(feature = "read-initializer")))] -pub use futures_io::Initializer; +pub use std::io::Initializer; + +pub use futures_io::{AsyncRead, AsyncWrite, AsyncSeek, AsyncBufRead}; // used by `BufReader` and `BufWriter` // https://github.com/rust-lang/rust/blob/master/src/libstd/sys_common/io.rs#L1 diff --git a/futures-util/src/task/mod.rs b/futures-util/src/task/mod.rs index 77e5a96619..dd1515c7fa 100644 --- a/futures-util/src/task/mod.rs +++ b/futures-util/src/task/mod.rs @@ -10,7 +10,8 @@ //! The remaining types and traits in the module are used for implementing //! executors or dealing with synchronization issues around task wakeup. -pub use futures_core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable}; +#[doc(no_inline)] +pub use core::task::{Context, Poll, Waker, RawWaker, RawWakerVTable}; pub use futures_task::{ Spawn, LocalSpawn, SpawnError,