blob: 61e1f1b200f6a626c4eb3fa7c878a91cbe34a4dd [file] [log] [blame]
//@ compile-flags: -Znext-solver
//@ check-pass
// A regression test for trait-system-refactor-initiative#109.
trait ParallelIterator: Sized {
type Item;
}
trait IntoParallelIterator {
type Iter: ParallelIterator<Item = Self::Item>;
type Item;
}
impl<T: ParallelIterator> IntoParallelIterator for T {
type Iter = T;
type Item = T::Item;
}
macro_rules! multizip_impls {
($($T:ident),+) => {
fn foo<$( $T, )+>() where
$(
$T: IntoParallelIterator,
$T::Iter: ParallelIterator,
)+
($( $T, )+): IntoParallelIterator<Item = ($( $T::Item, )+)>,
{}
}
}
multizip_impls! { A, B, C, D, E, F, G, H, I, J, K, L }
fn main() {}