diff options
| author | bors <bors@rust-lang.org> | 2016-06-24 09:03:54 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-06-24 09:03:54 -0700 |
| commit | 4b89debc7b776a947331dd0ceaa52ba8476157b2 (patch) | |
| tree | d05eb419e87868c9f3478567922d918c05f9e01d /src/libcore/str | |
| parent | 7189ae36116491ea4936ad34461c8d89f704608b (diff) | |
| parent | 8ff5c4394cdfc11f29de36123a6c9618e12c9904 (diff) | |
| download | rust-4b89debc7b776a947331dd0ceaa52ba8476157b2.tar.gz rust-4b89debc7b776a947331dd0ceaa52ba8476157b2.zip | |
Auto merge of #34425 - tbu-:pr_len_instead_of_size_hint, r=alexcrichton
Use `len` instead of `size_hint` where appropiate This makes it clearer that we're not just looking for a lower bound but rather know that the iterator is an `ExactSizeIterator`.
Diffstat (limited to 'src/libcore/str')
| -rw-r--r-- | src/libcore/str/mod.rs | 9 | ||||
| -rw-r--r-- | src/libcore/str/pattern.rs | 8 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs index 56d1a396165..a32c9da9815 100644 --- a/src/libcore/str/mod.rs +++ b/src/libcore/str/mod.rs @@ -433,7 +433,7 @@ impl<'a> Iterator for Chars<'a> { #[inline] fn size_hint(&self) -> (usize, Option<usize>) { - let (len, _) = self.iter.size_hint(); + let len = self.iter.len(); // `(len + 3)` can't overflow, because we know that the `slice::Iter` // belongs to a slice in memory which has a maximum length of // `isize::MAX` (that's well below `usize::MAX`). @@ -480,12 +480,12 @@ impl<'a> Iterator for CharIndices<'a> { #[inline] fn next(&mut self) -> Option<(usize, char)> { - let (pre_len, _) = self.iter.iter.size_hint(); + let pre_len = self.iter.iter.len(); match self.iter.next() { None => None, Some(ch) => { let index = self.front_offset; - let (len, _) = self.iter.iter.size_hint(); + let len = self.iter.iter.len(); self.front_offset += pre_len - len; Some((index, ch)) } @@ -505,8 +505,7 @@ impl<'a> DoubleEndedIterator for CharIndices<'a> { match self.iter.next_back() { None => None, Some(ch) => { - let (len, _) = self.iter.iter.size_hint(); - let index = self.front_offset + len; + let index = self.front_offset + self.iter.iter.len(); Some((index, ch)) } } diff --git a/src/libcore/str/pattern.rs b/src/libcore/str/pattern.rs index b803539e12b..53804c611e6 100644 --- a/src/libcore/str/pattern.rs +++ b/src/libcore/str/pattern.rs @@ -310,9 +310,9 @@ unsafe impl<'a, C: CharEq> Searcher<'a> for CharEqSearcher<'a, C> { let s = &mut self.char_indices; // Compare lengths of the internal byte slice iterator // to find length of current char - let (pre_len, _) = s.iter.iter.size_hint(); + let pre_len = s.iter.iter.len(); if let Some((i, c)) = s.next() { - let (len, _) = s.iter.iter.size_hint(); + let len = s.iter.iter.len(); let char_len = pre_len - len; if self.char_eq.matches(c) { return SearchStep::Match(i, i + char_len); @@ -330,9 +330,9 @@ unsafe impl<'a, C: CharEq> ReverseSearcher<'a> for CharEqSearcher<'a, C> { let s = &mut self.char_indices; // Compare lengths of the internal byte slice iterator // to find length of current char - let (pre_len, _) = s.iter.iter.size_hint(); + let pre_len = s.iter.iter.len(); if let Some((i, c)) = s.next_back() { - let (len, _) = s.iter.iter.size_hint(); + let len = s.iter.iter.len(); let char_len = pre_len - len; if self.char_eq.matches(c) { return SearchStep::Match(i, i + char_len); |
