summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/repeat_vec_with_capacity.rs
blob: 659f2a3953ddea33e994e32908b50eb28f0c0746 (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() {
    {
        vec![Vec::<()>::with_capacity(42); 123];
        //~^ ERROR: repeating `Vec::with_capacity` using `vec![x; n]`, which does not retain capacity
    }

    {
        let n = 123;
        vec![Vec::<()>::with_capacity(42); n];
        //~^ 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(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));
    }
}