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`.
This commit is contained in:
commit
4b89debc7b
@ -1658,7 +1658,7 @@ impl<T> Iterator for IntoIter<T> {
|
||||
|
||||
#[inline]
|
||||
fn count(self) -> usize {
|
||||
self.size_hint().0
|
||||
self.len()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1384,7 +1384,7 @@ impl Debug for str {
|
||||
for (i, c) in self.char_indices() {
|
||||
let esc = c.escape_default();
|
||||
// If char needs escaping, flush backlog so far and write, else skip
|
||||
if esc.size_hint() != (1, Some(1)) {
|
||||
if esc.len() != 1 {
|
||||
f.write_str(&self[from..i])?;
|
||||
for c in esc {
|
||||
f.write_char(c)?;
|
||||
|
@ -835,7 +835,7 @@ macro_rules! iterator {
|
||||
|
||||
#[inline]
|
||||
fn count(self) -> usize {
|
||||
self.size_hint().0
|
||||
self.len()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
@ -1444,7 +1444,7 @@ impl<'a, T> Iterator for Windows<'a, T> {
|
||||
|
||||
#[inline]
|
||||
fn count(self) -> usize {
|
||||
self.size_hint().0
|
||||
self.len()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
@ -1541,7 +1541,7 @@ impl<'a, T> Iterator for Chunks<'a, T> {
|
||||
|
||||
#[inline]
|
||||
fn count(self) -> usize {
|
||||
self.size_hint().0
|
||||
self.len()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
@ -1632,7 +1632,7 @@ impl<'a, T> Iterator for ChunksMut<'a, T> {
|
||||
|
||||
#[inline]
|
||||
fn count(self) -> usize {
|
||||
self.size_hint().0
|
||||
self.len()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
|
@ -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))
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -715,7 +715,7 @@ impl<'a> Iterator for Wtf8CodePoints<'a> {
|
||||
|
||||
#[inline]
|
||||
fn size_hint(&self) -> (usize, Option<usize>) {
|
||||
let (len, _) = self.bytes.size_hint();
|
||||
let len = self.bytes.len();
|
||||
(len.saturating_add(3) / 4, Some(len))
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user