about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorWaffle <waffle.lapkin@gmail.com>2020-03-18 11:02:29 +0300
committerWaffle <waffle.lapkin@gmail.com>2020-03-18 11:26:04 +0300
commitd36d3fa5a6441f13c3888b6895cc7046740b1e3d (patch)
tree829518b6b0d91cdf1fc369af5bdfded5a3051b82 /src/libcore
parenta5206f9749faf60f6b4163a526de9ad18241503e (diff)
downloadrust-d36d3fa5a6441f13c3888b6895cc7046740b1e3d.tar.gz
rust-d36d3fa5a6441f13c3888b6895cc7046740b1e3d.zip
fixes to `Option::{zip,zip_with}`
- remove `#[inline]` attributes (see https://github.com/rust-lang/rust/pull/69997#discussion_r393942617)
- fill tracking issue in `#[unstable]` attributes
- slightly improve the docs
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/option.rs20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/libcore/option.rs b/src/libcore/option.rs
index 5db92a1b352..4bec3ec9f6b 100644
--- a/src/libcore/option.rs
+++ b/src/libcore/option.rs
@@ -916,8 +916,8 @@ impl<T> Option<T> {
 
     /// Zips `self` with another `Option`.
     ///
-    /// Returns `Some((_, _))` when both `self` and `other`
-    /// are `Some(_)`, otherwise return `None`.
+    /// If `self` is `Some(s)` and other is `Some(o)`, this method returns `Some((s, o))`.
+    /// Otherwise, `None` is returned.
     ///
     /// # Examples
     ///
@@ -930,16 +930,15 @@ impl<T> Option<T> {
     /// assert_eq!(x.zip(y), Some((1, "hi")));
     /// assert_eq!(x.zip(z), None);
     /// ```
-    #[inline]
-    #[unstable(feature = "option_zip", issue = "none")]
+    #[unstable(feature = "option_zip", issue = "70086")]
     pub fn zip<U>(self, other: Option<U>) -> Option<(T, U)> {
         self.zip_with(other, |a, b| (a, b))
     }
 
     /// Zips `self` and another `Option` with function `f`.
     ///
-    /// Returns `Some(_)` when both `self` and `other`
-    /// are `Some(_)`, otherwise return `None`.
+    /// If `self` is `Some(s)` and other is `Some(o)`, this method returns `Some(f(s, o))`.
+    /// Otherwise, `None` is returned.
     ///
     /// # Examples
     ///
@@ -958,14 +957,13 @@ impl<T> Option<T> {
     ///     }
     /// }
     ///
-    /// let x = Some(17.);
-    /// let y = Some(42.);
+    /// let x = Some(17.5);
+    /// let y = Some(42.7);
     ///
-    /// assert_eq!(x.zip_with(y, Point::new), Some(Point { x: 17., y: 42. }));
+    /// assert_eq!(x.zip_with(y, Point::new), Some(Point { x: 17.5, y: 42.7 }));
     /// assert_eq!(x.zip_with(None, Point::new), None);
     /// ```
-    #[inline]
-    #[unstable(feature = "option_zip", issue = "none")]
+    #[unstable(feature = "option_zip", issue = "70086")]
     pub fn zip_with<U, F, R>(self, other: Option<U>, f: F) -> Option<R>
     where
         F: FnOnce(T, U) -> R,