// Issue #5886: a complex instance of issue #2687. | |
trait Iterator<A> { | |
fn next(&mut self) -> Option<A>; | |
} | |
trait IteratorUtil<A>: Sized | |
{ | |
fn zip<B, U: Iterator<U>>(self, other: U) -> ZipIterator<Self, U>; | |
} | |
impl<A, T: Iterator<A>> IteratorUtil<A> for T { | |
fn zip<B, U: Iterator<B>>(self, other: U) -> ZipIterator<T, U> { | |
//~^ ERROR E0276 | |
ZipIterator{a: self, b: other} | |
} | |
} | |
struct ZipIterator<T, U> { | |
a: T, b: U | |
} | |
fn main() {} |