diff options
Diffstat (limited to 'src/test/ui/associated-types/associated-types-doubleendediterator-object.rs')
-rw-r--r-- | src/test/ui/associated-types/associated-types-doubleendediterator-object.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/test/ui/associated-types/associated-types-doubleendediterator-object.rs b/src/test/ui/associated-types/associated-types-doubleendediterator-object.rs new file mode 100644 index 000000000..05498ba63 --- /dev/null +++ b/src/test/ui/associated-types/associated-types-doubleendediterator-object.rs @@ -0,0 +1,19 @@ +// run-pass + +fn pairwise_sub(mut t: Box<dyn DoubleEndedIterator<Item=isize>>) -> 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(Box::new(v.into_iter())); + assert_eq!(r, 9); +} |