]> git.lizzy.rs Git - rust.git/blob - tests/ui/iterators/invalid-iterator-chain.rs
Rollup merge of #106585 - estebank:issue-46585, r=compiler-errors
[rust.git] / tests / ui / iterators / invalid-iterator-chain.rs
1 use std::collections::hash_set::Iter;
2 use std::collections::HashSet;
3
4 fn iter_to_vec<'b, X>(i: Iter<'b, X>) -> Vec<X> {
5     let i = i.map(|x| x.clone());
6     i.collect() //~ ERROR E0277
7 }
8
9 fn main() {
10     let scores = vec![(0, 0)]
11         .iter()
12         .map(|(a, b)| {
13             a + b;
14         });
15     println!("{}", scores.sum::<i32>()); //~ ERROR E0277
16     println!(
17         "{}",
18         vec![0, 1]
19             .iter()
20             .map(|x| x * 2)
21             .map(|x| x as f64)
22             .map(|x| x as i64)
23             .filter(|x| *x > 0)
24             .map(|x| { x + 1 })
25             .map(|x| { x; })
26             .sum::<i32>(), //~ ERROR E0277
27     );
28     println!(
29         "{}",
30         vec![0, 1]
31             .iter()
32             .map(|x| x * 2)
33             .map(|x| x as f64)
34             .filter(|x| *x > 0.0)
35             .map(|x| { x + 1.0 })
36             .sum::<i32>(), //~ ERROR E0277
37     );
38     println!("{}", vec![0, 1].iter().map(|x| { x; }).sum::<i32>()); //~ ERROR E0277
39     println!("{}", vec![(), ()].iter().sum::<i32>()); //~ ERROR E0277
40     let a = vec![0];
41     let b = a.into_iter();
42     let c = b.map(|x| x + 1);
43     let d = c.filter(|x| *x > 10 );
44     let e = d.map(|x| {
45         x + 1;
46     });
47     let f = e.filter(|_| false);
48     let g: Vec<i32> = f.collect(); //~ ERROR E0277
49
50     let mut s = HashSet::new();
51     s.insert(1u8);
52     println!("{:?}", iter_to_vec(s.iter()));
53 }