diff --git a/library/core/src/iter/adapters/flatten.rs b/library/core/src/iter/adapters/flatten.rs index 0240d30363a..a6dc633a664 100644 --- a/library/core/src/iter/adapters/flatten.rs +++ b/library/core/src/iter/adapters/flatten.rs @@ -297,7 +297,7 @@ where let (blo, bhi) = self.backiter.as_ref().map_or((0, Some(0)), U::size_hint); let lo = flo.saturating_add(blo); - if let Some(fixed_size) = <::Item as ConstSizeIterable>::size() { + if let Some(fixed_size) = <::Item as ConstSizeIntoIterator>::size() { let (lower, upper) = self.iter.size_hint(); let lower = lower.saturating_mul(fixed_size).saturating_add(lo); @@ -474,18 +474,18 @@ where } } -trait ConstSizeIterable { +trait ConstSizeIntoIterator: IntoIterator { fn size() -> Option; } -impl ConstSizeIterable for T { +impl ConstSizeIntoIterator for T where T: IntoIterator { #[inline] default fn size() -> Option { None } } -impl ConstSizeIterable for [T; N] { +impl ConstSizeIntoIterator for [T; N] { #[inline] fn size() -> Option { Some(N)