summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/redundant_allocation_fixable.rs
blob: c15806f30c049c4c0715dfc897759c141edb3477 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// run-rustfix
#![warn(clippy::all)]
#![allow(clippy::boxed_local, clippy::needless_pass_by_value)]
#![allow(clippy::disallowed_names, unused_variables, dead_code)]
#![allow(unused_imports)]

pub struct MyStruct;

pub struct SubT<T> {
    foo: T,
}

pub enum MyEnum {
    One,
    Two,
}

mod outer_box {
    use crate::MyEnum;
    use crate::MyStruct;
    use crate::SubT;
    use std::boxed::Box;
    use std::rc::Rc;
    use std::sync::Arc;

    pub fn box_test1<T>(foo: Box<&T>) {}

    pub fn box_test2(foo: Box<&MyStruct>) {}

    pub fn box_test3(foo: Box<&MyEnum>) {}

    pub fn box_test4_neg(foo: Box<SubT<&usize>>) {}

    pub fn box_test5<T>(foo: Box<Box<T>>) {}
}

mod outer_rc {
    use crate::MyEnum;
    use crate::MyStruct;
    use crate::SubT;
    use std::boxed::Box;
    use std::rc::Rc;
    use std::sync::Arc;

    pub fn rc_test1<T>(foo: Rc<&T>) {}

    pub fn rc_test2(foo: Rc<&MyStruct>) {}

    pub fn rc_test3(foo: Rc<&MyEnum>) {}

    pub fn rc_test4_neg(foo: Rc<SubT<&usize>>) {}

    pub fn rc_test6(a: Rc<Rc<bool>>) {}
}

mod outer_arc {
    use crate::MyEnum;
    use crate::MyStruct;
    use crate::SubT;
    use std::boxed::Box;
    use std::rc::Rc;
    use std::sync::Arc;

    pub fn arc_test1<T>(foo: Arc<&T>) {}

    pub fn arc_test2(foo: Arc<&MyStruct>) {}

    pub fn arc_test3(foo: Arc<&MyEnum>) {}

    pub fn arc_test4_neg(foo: Arc<SubT<&usize>>) {}

    pub fn arc_test7(a: Arc<Arc<bool>>) {}
}

fn main() {}