summaryrefslogtreecommitdiffstats
path: root/src/test/ui/privacy/access_levels.rs
blob: d51d2b57267b6f6686692e252dffac0801642f18 (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
#![feature(rustc_attrs)]

#[rustc_access_level] mod outer { //~ ERROR None
    #[rustc_access_level] pub mod inner { //~ ERROR Some(Exported)
        #[rustc_access_level]
        extern "C" { //~ ERROR Some(Exported)
            #[rustc_access_level] static a: u8; //~ ERROR None
            #[rustc_access_level] pub fn b(); //~ ERROR Some(Exported)
        }
        #[rustc_access_level]
        pub trait Trait { //~ ERROR Some(Exported)
            #[rustc_access_level] const A: i32; //~ ERROR Some(Exported)
            #[rustc_access_level] type B; //~ ERROR Some(Exported)
        }

        #[rustc_access_level]
        pub struct Struct { //~ ERROR Some(Exported)
            #[rustc_access_level] a: u8, //~ ERROR None
            #[rustc_access_level] pub b: u8, //~ ERROR Some(Exported)
        }

        #[rustc_access_level]
        pub union Union { //~ ERROR Some(Exported)
            #[rustc_access_level] a: u8, //~ ERROR None
            #[rustc_access_level] pub b: u8, //~ ERROR Some(Exported)
        }

        #[rustc_access_level]
        pub enum Enum { //~ ERROR Some(Exported)
            #[rustc_access_level] A( //~ ERROR Some(Exported)
                #[rustc_access_level] Struct, //~ ERROR Some(Exported)
                #[rustc_access_level] Union,  //~ ERROR Some(Exported)
            ),
        }
    }

    #[rustc_access_level] macro_rules! none_macro { //~ ERROR None
        () => {};
    }

    #[macro_export]
    #[rustc_access_level] macro_rules! public_macro { //~ ERROR Some(Public)
        () => {};
    }
}

pub use outer::inner;

fn main() {}