]> git.lizzy.rs Git - rust.git/blob - tests/ui/attributes/item-attributes.rs
Rollup merge of #107761 - oli-obk:miri_🪵, r=TaKO8Ki
[rust.git] / tests / ui / attributes / item-attributes.rs
1 // These are attributes of the implicit crate. Really this just needs to parse
2 // for completeness since .rs files linked from .rc files support this
3 // notation to specify their module's attributes
4
5 // check-pass
6
7 #![feature(rustc_attrs)]
8 #![rustc_dummy = "val"]
9 #![rustc_dummy = "val"]
10 #![rustc_dummy]
11 #![rustc_dummy(attr5)]
12
13 // These are attributes of the following mod
14 #[rustc_dummy = "val"]
15 #[rustc_dummy = "val"]
16 mod test_first_item_in_file_mod {}
17
18 mod test_single_attr_outer {
19     #[rustc_dummy = "val"]
20     pub static X: isize = 10;
21
22     #[rustc_dummy = "val"]
23     pub fn f() {}
24
25     #[rustc_dummy = "val"]
26     pub mod mod1 {}
27
28     pub mod rustrt {
29         #[rustc_dummy = "val"]
30         extern "C" {}
31     }
32 }
33
34 mod test_multi_attr_outer {
35     #[rustc_dummy = "val"]
36     #[rustc_dummy = "val"]
37     pub static X: isize = 10;
38
39     #[rustc_dummy = "val"]
40     #[rustc_dummy = "val"]
41     pub fn f() {}
42
43     #[rustc_dummy = "val"]
44     #[rustc_dummy = "val"]
45     pub mod mod1 {}
46
47     pub mod rustrt {
48         #[rustc_dummy = "val"]
49         #[rustc_dummy = "val"]
50         extern "C" {}
51     }
52
53     #[rustc_dummy = "val"]
54     #[rustc_dummy = "val"]
55     struct T {
56         x: isize,
57     }
58 }
59
60 mod test_stmt_single_attr_outer {
61     pub fn f() {
62         #[rustc_dummy = "val"]
63         static X: isize = 10;
64
65         #[rustc_dummy = "val"]
66         fn f() {}
67
68         #[rustc_dummy = "val"]
69         mod mod1 {}
70
71         mod rustrt {
72             #[rustc_dummy = "val"]
73             extern "C" {}
74         }
75     }
76 }
77
78 mod test_stmt_multi_attr_outer {
79     pub fn f() {
80         #[rustc_dummy = "val"]
81         #[rustc_dummy = "val"]
82         static X: isize = 10;
83
84         #[rustc_dummy = "val"]
85         #[rustc_dummy = "val"]
86         fn f() {}
87
88         #[rustc_dummy = "val"]
89         #[rustc_dummy = "val"]
90         mod mod1 {}
91
92         mod rustrt {
93             #[rustc_dummy = "val"]
94             #[rustc_dummy = "val"]
95             extern "C" {}
96         }
97     }
98 }
99
100 mod test_attr_inner {
101     pub mod m {
102         // This is an attribute of mod m
103         #![rustc_dummy = "val"]
104     }
105 }
106
107 mod test_attr_inner_then_outer {
108     pub mod m {
109         // This is an attribute of mod m
110         #![rustc_dummy = "val"]
111         // This is an attribute of fn f
112         #[rustc_dummy = "val"]
113         fn f() {}
114     }
115 }
116
117 mod test_attr_inner_then_outer_multi {
118     pub mod m {
119         // This is an attribute of mod m
120         #![rustc_dummy = "val"]
121         #![rustc_dummy = "val"]
122         // This is an attribute of fn f
123         #[rustc_dummy = "val"]
124         #[rustc_dummy = "val"]
125         fn f() {}
126     }
127 }
128
129 mod test_distinguish_syntax_ext {
130     pub fn f() {
131         format!("test{}", "s");
132         #[rustc_dummy = "val"]
133         fn g() {}
134     }
135 }
136
137 mod test_other_forms {
138     #[rustc_dummy]
139     #[rustc_dummy(word)]
140     #[rustc_dummy(attr(word))]
141     #[rustc_dummy(key1 = "val", key2 = "val", attr)]
142     pub fn f() {}
143 }
144
145 mod test_foreign_items {
146     pub mod rustrt {
147         extern "C" {
148             #![rustc_dummy]
149
150             #[rustc_dummy]
151             fn rust_get_test_int() -> u32;
152         }
153     }
154 }
155
156 // FIXME(#623): - these aren't supported yet
157 /*mod test_literals {
158     #![str = "s"]
159     #![char = 'c']
160     #![isize = 100]
161     #![usize = 100_usize]
162     #![mach_int = 100u32]
163     #![float = 1.0]
164     #![mach_float = 1.0f32]
165     #![nil = ()]
166     #![bool = true]
167     mod m {}
168 }*/
169
170 fn test_fn_inner() {
171     #![rustc_dummy]
172 }
173
174 fn main() {}