Rollup merge of #127091 - Sky9x:fused-error-sources-iter, r=dtolnay · model-checking/verify-rust-std@6f6e343 (original) (raw)

Original file line number Diff line number Diff line change
@@ -1008,8 +1008,15 @@ impl<'a> Iterator for Source<'a> {
1008 1008 self.current = self.current.and_then(Error::source);
1009 1009 current
1010 1010 }
1011 +
1012 +fn size_hint(&self) -> (usize, Option<usize>) {
1013 +if self.current.is_some() { (1, None) } else { (0, Some(0)) }
1014 +}
1011 1015 }
1012 1016
1017 +#[unstable(feature = "error_iter", issue = "58520")]
1018 +impl<'a> crate::iter::FusedIterator for Source<'a> {}
1019 +
1013 1020 #[stable(feature = "error_by_ref", since = "1.51.0")]
1014 1021 impl<'a, T: Error + ?Sized> Error for &'a T {
1015 1022 #[allow(deprecated, deprecated_in_future)]