about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-05-27 11:18:53 +0000
committerbors <bors@rust-lang.org>2020-05-27 11:18:53 +0000
commitacfc5584018de3a9a431a17f0cc34e0bfaf4cdeb (patch)
treebc831a62648379cfb43fba304bff233e2e4200f5 /src/libcore
parent783139bd8fc3b94fac9a1bf81bba2c506e8221b6 (diff)
parente6353aac9d0365d6541bb7f33548fdeb988b6563 (diff)
downloadrust-acfc5584018de3a9a431a17f0cc34e0bfaf4cdeb.tar.gz
rust-acfc5584018de3a9a431a17f0cc34e0bfaf4cdeb.zip
Auto merge of #72639 - Dylan-DPC:rollup-76upj51, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #72348 (Fix confusing error message for comma typo in multiline statement)
 - #72533 (Resolve UB in Arc/Weak interaction (2))
 - #72548 (Add test for old compiler ICE when using `Borrow`)
 - #72606 (Small cell example update)
 - #72610 (Remove font-display settings)
 - #72626 (Add remark regarding DoubleEndedIterator)

Failed merges:

r? @ghost
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/cell.rs6
-rw-r--r--src/libcore/iter/traits/double_ended.rs26
2 files changed, 29 insertions, 3 deletions
diff --git a/src/libcore/cell.rs b/src/libcore/cell.rs
index fad3095f8a3..c4c1d2824b0 100644
--- a/src/libcore/cell.rs
+++ b/src/libcore/cell.rs
@@ -849,11 +849,11 @@ impl<T: ?Sized> RefCell<T> {
     /// ```
     /// use std::cell::RefCell;
     ///
-    /// let c = RefCell::new(5);
+    /// let c = RefCell::new("hello".to_owned());
     ///
-    /// *c.borrow_mut() = 7;
+    /// *c.borrow_mut() = "bonjour".to_owned();
     ///
-    /// assert_eq!(*c.borrow(), 7);
+    /// assert_eq!(&*c.borrow(), "bonjour");
     /// ```
     ///
     /// An example of panic:
diff --git a/src/libcore/iter/traits/double_ended.rs b/src/libcore/iter/traits/double_ended.rs
index cceb373d552..f6329c6c593 100644
--- a/src/libcore/iter/traits/double_ended.rs
+++ b/src/libcore/iter/traits/double_ended.rs
@@ -63,6 +63,32 @@ pub trait DoubleEndedIterator: Iterator {
     /// assert_eq!(None, iter.next());
     /// assert_eq!(None, iter.next_back());
     /// ```
+    ///
+    /// # Remarks
+    ///
+    /// The elements yielded by `DoubleEndedIterator`'s methods may differ from
+    /// the ones yielded by `Iterator`'s methods:
+    ///
+    /// ```
+    /// let vec = vec![(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b')];
+    /// let uniq_by_fst_comp = || {
+    ///     let mut seen = std::collections::HashSet::new();
+    ///     vec.iter().copied().filter(move |x| seen.insert(x.0))
+    /// };
+    ///
+    /// assert_eq!(uniq_by_fst_comp().last(), Some((2, 'a')));
+    /// assert_eq!(uniq_by_fst_comp().next_back(), Some((2, 'b')));
+    ///
+    /// assert_eq!(
+    ///     uniq_by_fst_comp().fold(vec![], |mut v, x| {v.push(x); v}),
+    ///     vec![(1, 'a'), (2, 'a')]
+    /// );
+    /// assert_eq!(
+    ///     uniq_by_fst_comp().rfold(vec![], |mut v, x| {v.push(x); v}),
+    ///     vec![(2, 'b'), (1, 'c')]
+    /// );
+    /// ```
+    ///
     #[stable(feature = "rust1", since = "1.0.0")]
     fn next_back(&mut self) -> Option<Self::Item>;