about summary refs log tree commit diff
diff options
context:
space:
mode:
authorManuel <LifeIsHealthy@icloud.com>2017-03-21 22:18:52 +0100
committerGitHub <noreply@github.com>2017-03-21 22:18:52 +0100
commita8800bb675397e6aa06ffdac46092d5d03e0cf69 (patch)
tree4eb8edbe9d56dbb2302f9126cc429bb165867e22
parent58c701f5c7dc26d9b55c631006ece52abe1ddce2 (diff)
downloadrust-a8800bb675397e6aa06ffdac46092d5d03e0cf69.tar.gz
rust-a8800bb675397e6aa06ffdac46092d5d03e0cf69.zip
Fix doc error for ExactSizeIterator
The code example in the trait documentation of ExactSizeIterator
has an incorrect implementation of the len method that does not return
the number of times the example iterator 'Counter' will iterate. This
may confuse readers of the docs as the example code will compile but 
doesn't uphold the trait's contract.

This is easily fixed by modifying the implementation of len and changing
the assert statement to actually assert the correct behaviour. I also
slightly modified a code comment to better reflect what the method 
returns.
-rw-r--r--src/libcore/iter/traits.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libcore/iter/traits.rs b/src/libcore/iter/traits.rs
index 3415b0eea9b..34f14ef53f8 100644
--- a/src/libcore/iter/traits.rs
+++ b/src/libcore/iter/traits.rs
@@ -536,9 +536,9 @@ impl<'a, I: DoubleEndedIterator + ?Sized> DoubleEndedIterator for &'a mut I {
 /// #     }
 /// # }
 /// impl ExactSizeIterator for Counter {
-///     // We already have the number of iterations, so we can use it directly.
+///     // We can easily calculate the remaining number of iterations.
 ///     fn len(&self) -> usize {
-///         self.count
+///         5 - self.count
 ///     }
 /// }
 ///
@@ -546,7 +546,7 @@ impl<'a, I: DoubleEndedIterator + ?Sized> DoubleEndedIterator for &'a mut I {
 ///
 /// let counter = Counter::new();
 ///
-/// assert_eq!(0, counter.len());
+/// assert_eq!(5, counter.len());
 /// ```
 #[stable(feature = "rust1", since = "1.0.0")]
 pub trait ExactSizeIterator: Iterator {