mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Auto merge of #107987 - EFanZh:inline-poll-methods, r=Mark-Simulacrum
Inline `Poll` methods With `opt-level="z"`, the `Poll::map*` methods are sometimes not inlined (see <https://godbolt.org/z/ca5ajKTEK>). This PR adds `#[inline]` to these methods. I have a project that can benefit from this change, but do we want to enable this behavior universally? Fixes #101080.
This commit is contained in:
commit
31f858d9a5
@ -45,6 +45,7 @@ impl<T> Poll<T> {
|
|||||||
/// assert_eq!(poll_some_len, Poll::Ready(13));
|
/// assert_eq!(poll_some_len, Poll::Ready(13));
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "futures_api", since = "1.36.0")]
|
#[stable(feature = "futures_api", since = "1.36.0")]
|
||||||
|
#[inline]
|
||||||
pub fn map<U, F>(self, f: F) -> Poll<U>
|
pub fn map<U, F>(self, f: F) -> Poll<U>
|
||||||
where
|
where
|
||||||
F: FnOnce(T) -> U,
|
F: FnOnce(T) -> U,
|
||||||
@ -144,6 +145,7 @@ impl<T, E> Poll<Result<T, E>> {
|
|||||||
/// assert_eq!(squared, Poll::Ready(Ok(144)));
|
/// assert_eq!(squared, Poll::Ready(Ok(144)));
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "futures_api", since = "1.36.0")]
|
#[stable(feature = "futures_api", since = "1.36.0")]
|
||||||
|
#[inline]
|
||||||
pub fn map_ok<U, F>(self, f: F) -> Poll<Result<U, E>>
|
pub fn map_ok<U, F>(self, f: F) -> Poll<Result<U, E>>
|
||||||
where
|
where
|
||||||
F: FnOnce(T) -> U,
|
F: FnOnce(T) -> U,
|
||||||
@ -171,6 +173,7 @@ impl<T, E> Poll<Result<T, E>> {
|
|||||||
/// assert_eq!(res, Poll::Ready(Err(0)));
|
/// assert_eq!(res, Poll::Ready(Err(0)));
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "futures_api", since = "1.36.0")]
|
#[stable(feature = "futures_api", since = "1.36.0")]
|
||||||
|
#[inline]
|
||||||
pub fn map_err<U, F>(self, f: F) -> Poll<Result<T, U>>
|
pub fn map_err<U, F>(self, f: F) -> Poll<Result<T, U>>
|
||||||
where
|
where
|
||||||
F: FnOnce(E) -> U,
|
F: FnOnce(E) -> U,
|
||||||
@ -199,6 +202,7 @@ impl<T, E> Poll<Option<Result<T, E>>> {
|
|||||||
/// assert_eq!(squared, Poll::Ready(Some(Ok(144))));
|
/// assert_eq!(squared, Poll::Ready(Some(Ok(144))));
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "poll_map", since = "1.51.0")]
|
#[stable(feature = "poll_map", since = "1.51.0")]
|
||||||
|
#[inline]
|
||||||
pub fn map_ok<U, F>(self, f: F) -> Poll<Option<Result<U, E>>>
|
pub fn map_ok<U, F>(self, f: F) -> Poll<Option<Result<U, E>>>
|
||||||
where
|
where
|
||||||
F: FnOnce(T) -> U,
|
F: FnOnce(T) -> U,
|
||||||
@ -228,6 +232,7 @@ impl<T, E> Poll<Option<Result<T, E>>> {
|
|||||||
/// assert_eq!(res, Poll::Ready(Some(Err(0))));
|
/// assert_eq!(res, Poll::Ready(Some(Err(0))));
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "poll_map", since = "1.51.0")]
|
#[stable(feature = "poll_map", since = "1.51.0")]
|
||||||
|
#[inline]
|
||||||
pub fn map_err<U, F>(self, f: F) -> Poll<Option<Result<T, U>>>
|
pub fn map_err<U, F>(self, f: F) -> Poll<Option<Result<T, U>>>
|
||||||
where
|
where
|
||||||
F: FnOnce(E) -> U,
|
F: FnOnce(E) -> U,
|
||||||
|
Loading…
Reference in New Issue
Block a user