diff options
| author | bors <bors@rust-lang.org> | 2020-05-27 11:18:53 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-05-27 11:18:53 +0000 |
| commit | acfc5584018de3a9a431a17f0cc34e0bfaf4cdeb (patch) | |
| tree | bc831a62648379cfb43fba304bff233e2e4200f5 /src/libcore | |
| parent | 783139bd8fc3b94fac9a1bf81bba2c506e8221b6 (diff) | |
| parent | e6353aac9d0365d6541bb7f33548fdeb988b6563 (diff) | |
| download | rust-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.rs | 6 | ||||
| -rw-r--r-- | src/libcore/iter/traits/double_ended.rs | 26 |
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>; |
