diff --git a/library/core/src/iter/adapters/chain.rs b/library/core/src/iter/adapters/chain.rs
index 60eb3a6da3a4b..1e2fccd8780c2 100644
--- a/library/core/src/iter/adapters/chain.rs
+++ b/library/core/src/iter/adapters/chain.rs
@@ -1,4 +1,4 @@
-use crate::iter::{DoubleEndedIterator, FusedIterator, Iterator, TrustedLen};
+use crate::iter::{DoubleEndedIterator, ExactSizeIterator, FusedIterator, Iterator, TrustedLen};
use crate::ops::Try;
/// An iterator that links two iterators together, in a chain.
@@ -282,6 +282,13 @@ where
{
}
+impl ExactSizeIterator for Chain
+where
+ A: ExactSizeIterator,
+ B: ExactSizeIterator,
+{
+}
+
#[inline]
fn and_then_or_clear(opt: &mut Option, f: impl FnOnce(&mut T) -> Option) -> Option {
let x = f(opt.as_mut()?);