diff options
Diffstat (limited to 'src/test/ui/compare-method/traits-misc-mismatch-2.rs')
-rw-r--r-- | src/test/ui/compare-method/traits-misc-mismatch-2.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/ui/compare-method/traits-misc-mismatch-2.rs b/src/test/ui/compare-method/traits-misc-mismatch-2.rs new file mode 100644 index 000000000..d7f31c1d9 --- /dev/null +++ b/src/test/ui/compare-method/traits-misc-mismatch-2.rs @@ -0,0 +1,23 @@ +// 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() {} |