summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/repeat_vec_with_capacity.fixed
blob: 2afe2f43325879d1c50a3982358080907a23cae5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#![warn(clippy::repeat_vec_with_capacity)]

fn main() {
    {
        (0..123).map(|_| Vec::<()>::with_capacity(42)).collect::<Vec<_>>();
        //~^ ERROR: repeating `Vec::with_capacity` using `vec![x; n]`, which does not retain capacity
    }

    {
        let n = 123;
        (0..n).map(|_| Vec::<()>::with_capacity(42)).collect::<Vec<_>>();
        //~^ ERROR: repeating `Vec::with_capacity` using `vec![x; n]`, which does not retain capacity
    }

    {
        macro_rules! from_macro {
            ($x:expr) => {
                vec![$x; 123];
            };
        }
        // vec expansion is from another macro, don't lint
        from_macro!(Vec::<()>::with_capacity(42));
    }

    {
        std::iter::repeat_with(|| Vec::<()>::with_capacity(42));
        //~^ ERROR: repeating `Vec::with_capacity` using `iter::repeat`, which does not retain capacity
    }

    {
        macro_rules! from_macro {
            ($x:expr) => {
                std::iter::repeat($x)
            };
        }
        from_macro!(Vec::<()>::with_capacity(42));
    }
}