rust/tests/ui/for-loop-while/foreach-external-iterators-hashmap-break-restart.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

34 lines
604 B
Rust
Raw Normal View History

//@ run-pass
use std::collections::HashMap;
// This is a fancy one: it uses an external iterator established
// outside the loop, breaks, then _picks back up_ and continues
// iterating with it.
pub fn main() {
let mut h = HashMap::new();
2015-01-25 21:05:03 +00:00
let kvs = [(1, 10), (2, 20), (3, 30)];
2015-01-31 17:20:46 +00:00
for &(k,v) in &kvs {
h.insert(k,v);
}
let mut x = 0;
let mut y = 0;
let mut i = h.iter();
2015-01-23 01:08:56 +00:00
for (&k,&v) in i.by_ref() {
x += k;
y += v;
break;
}
for (&k,&v) in i {
x += k;
y += v;
}
assert_eq!(x, 6);
assert_eq!(y, 60);
}