about summary refs log tree commit diff
path: root/src/tools/clippy/tests/ui/redundant_pub_crate.fixed
blob: 8a30fedede4a41fe7a608939c8da3846b632a764 (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
//@aux-build:proc_macros.rs
#![allow(dead_code)]
#![warn(clippy::redundant_pub_crate)]

mod m1 {
    fn f() {}
    pub fn g() {} // private due to m1
    //
    //~^^ redundant_pub_crate
    pub fn h() {}

    mod m1_1 {
        fn f() {}
        pub fn g() {} // private due to m1_1 and m1
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }

    pub mod m1_2 {
        //~^ redundant_pub_crate
        //:^ private due to m1
        fn f() {}
        pub fn g() {} // private due to m1_2 and m1
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }

    pub mod m1_3 {
        fn f() {}
        pub fn g() {} // private due to m1
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }
}

pub(crate) mod m2 {
    fn f() {}
    pub fn g() {} // already crate visible due to m2
    //
    //~^^ redundant_pub_crate
    pub fn h() {}

    mod m2_1 {
        fn f() {}
        pub fn g() {} // private due to m2_1
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }

    pub mod m2_2 {
        //~^ redundant_pub_crate
        //:^ already crate visible due to m2
        fn f() {}
        pub fn g() {} // already crate visible due to m2_2 and m2
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }

    pub mod m2_3 {
        fn f() {}
        pub fn g() {} // already crate visible due to m2
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }
}

pub mod m3 {
    fn f() {}
    pub(crate) fn g() {} // ok: m3 is exported
    pub fn h() {}

    mod m3_1 {
        fn f() {}
        pub fn g() {} // private due to m3_1
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }

    pub(crate) mod m3_2 {
        //:^ ok
        fn f() {}
        pub fn g() {} // already crate visible due to m3_2
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }

    pub mod m3_3 {
        fn f() {}
        pub(crate) fn g() {} // ok: m3 and m3_3 are exported
        pub fn h() {}
    }
}

mod m4 {
    fn f() {}
    pub fn g() {} // private: not re-exported by `pub use m4::*`
    //
    //~^^ redundant_pub_crate
    pub fn h() {}

    mod m4_1 {
        fn f() {}
        pub fn g() {} // private due to m4_1
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }

    pub mod m4_2 {
        //~^ redundant_pub_crate
        //:^ private: not re-exported by `pub use m4::*`
        fn f() {}
        pub fn g() {} // private due to m4_2
        //
        //~^^ redundant_pub_crate
        pub fn h() {}
    }

    pub mod m4_3 {
        fn f() {}
        pub(crate) fn g() {} // ok: m4_3 is re-exported by `pub use m4::*`
        pub fn h() {}
    }
}

mod m5 {
    pub mod m5_1 {}
    // Test that the primary span isn't butchered for item kinds that don't have an ident.
    pub use m5_1::*; //~ redundant_pub_crate
    #[rustfmt::skip]
    pub use m5_1::{*}; //~ redundant_pub_crate
}

pub use m4::*;

mod issue_8732 {
    #[allow(unused_macros)]
    macro_rules! some_macro {
        () => {};
    }

    #[allow(unused_imports)]
    pub(crate) use some_macro; // ok: macro exports are exempt
}

proc_macros::external! {
    mod priv_mod {
        pub(crate) fn dummy() {}
    }
}

fn main() {}