diff options
Diffstat (limited to 'src/test/ui/associated-types/associated-types-iterator-binding.rs')
-rw-r--r-- | src/test/ui/associated-types/associated-types-iterator-binding.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/ui/associated-types/associated-types-iterator-binding.rs b/src/test/ui/associated-types/associated-types-iterator-binding.rs new file mode 100644 index 000000000..7c5528c98 --- /dev/null +++ b/src/test/ui/associated-types/associated-types-iterator-binding.rs @@ -0,0 +1,19 @@ +// run-pass + +fn pairwise_sub<T:DoubleEndedIterator<Item=isize>>(mut t: T) -> isize { + let mut result = 0; + loop { + let front = t.next(); + let back = t.next_back(); + match (front, back) { + (Some(f), Some(b)) => { result += b - f; } + _ => { return result; } + } + } +} + +fn main() { + let v = vec![1, 2, 3, 4, 5, 6]; + let r = pairwise_sub(v.into_iter()); + assert_eq!(r, 9); +} |