diff --git a/src/libcore/iter/adapters/mod.rs b/src/libcore/iter/adapters/mod.rs index 869329a007f6..1368775c6bfa 100644 --- a/src/libcore/iter/adapters/mod.rs +++ b/src/libcore/iter/adapters/mod.rs @@ -13,7 +13,6 @@ mod zip; pub use self::chain::Chain; pub use self::flatten::{FlatMap, Flatten}; pub use self::zip::Zip; -pub(super) use self::zip::ZipImpl; pub(crate) use self::zip::TrustedRandomAccess; /// A double-ended iterator with the direction inverted. diff --git a/src/libcore/iter/adapters/zip.rs b/src/libcore/iter/adapters/zip.rs index a27af53f39c9..3548d0e28260 100644 --- a/src/libcore/iter/adapters/zip.rs +++ b/src/libcore/iter/adapters/zip.rs @@ -19,6 +19,9 @@ pub struct Zip { len: usize, } impl Zip { + pub(in super::super) fn new(a: A, b: B) -> Zip { + ZipImpl::new(a, b) + } fn super_nth(&mut self, mut n: usize) -> Option<(A::Item, B::Item)> { while let Some(x) = Iterator::next(self) { if n == 0 { return Some(x) } @@ -62,7 +65,7 @@ impl DoubleEndedIterator for Zip where // Zip specialization trait #[doc(hidden)] -pub(in super::super) trait ZipImpl { +trait ZipImpl { type Item; fn new(a: A, b: B) -> Self; fn next(&mut self) -> Option; diff --git a/src/libcore/iter/mod.rs b/src/libcore/iter/mod.rs index 024b9ff9c4f8..b6bb5f01b2d2 100644 --- a/src/libcore/iter/mod.rs +++ b/src/libcore/iter/mod.rs @@ -353,7 +353,6 @@ pub use self::adapters::Flatten; #[unstable(feature = "iter_copied", issue = "57127")] pub use self::adapters::Copied; -use self::adapters::ZipImpl; pub(crate) use self::adapters::TrustedRandomAccess; mod range; diff --git a/src/libcore/iter/traits/iterator.rs b/src/libcore/iter/traits/iterator.rs index 2a3079838b03..62029b169525 100644 --- a/src/libcore/iter/traits/iterator.rs +++ b/src/libcore/iter/traits/iterator.rs @@ -5,8 +5,7 @@ use super::super::LoopState; use super::super::{Chain, Cycle, Copied, Cloned, Enumerate, Filter, FilterMap, Fuse}; use super::super::{Flatten, FlatMap}; use super::super::{Inspect, Map, Peekable, Scan, Skip, SkipWhile, StepBy, Take, TakeWhile, Rev}; -use super::super::{Zip, Sum, Product}; -use super::super::{FromIterator, ZipImpl}; +use super::super::{Zip, Sum, Product, FromIterator}; fn _assert_is_object_safe(_: &dyn Iterator) {}