]> git.proxmox.com Git - rustc.git/blame - src/test/ui/lint/lint-stability-fields-deprecated.rs
New upstream version 1.42.0+dfsg1
[rustc.git] / src / test / ui / lint / lint-stability-fields-deprecated.rs
CommitLineData
476ff2be 1// aux-build:lint_stability_fields.rs
b7449926 2
476ff2be
SL
3#![deny(deprecated)]
4#![allow(dead_code)]
b7449926 5#![feature(staged_api, unstable_test_feature)]
476ff2be
SL
6
7#![stable(feature = "rust1", since = "1.0.0")]
8
9mod cross_crate {
10 extern crate lint_stability_fields;
11
12 use self::lint_stability_fields::*;
13
14 pub fn foo() {
15 let x = Stable {
16 inherit: 1,
17 override1: 2,
18 override2: 3,
19 //~^ ERROR use of deprecated item
20 };
21
22 let _ = x.inherit;
23 let _ = x.override1;
24 let _ = x.override2;
25 //~^ ERROR use of deprecated item
26
27 let Stable {
28 inherit: _,
29 override1: _,
30 override2: _
31 //~^ ERROR use of deprecated item
32 } = x;
33 // all fine
34 let Stable { .. } = x;
35
36 let x = Stable2(1, 2, 3);
37
38 let _ = x.0;
39 let _ = x.1;
40 let _ = x.2;
41 //~^ ERROR use of deprecated item
42
43 let Stable2(_,
44 _,
45 _)
46 //~^ ERROR use of deprecated item
47 = x;
48 // all fine
49 let Stable2(..) = x;
50
51
52 let x = Unstable {
53 inherit: 1,
54 override1: 2,
55 override2: 3,
56 //~^ ERROR use of deprecated item
57 };
58
59 let _ = x.inherit;
60 let _ = x.override1;
61 let _ = x.override2;
62 //~^ ERROR use of deprecated item
63
64 let Unstable {
65 inherit: _,
66 override1: _,
67 override2: _
68 //~^ ERROR use of deprecated item
69 } = x;
70
71 let Unstable
72 // the patterns are all fine:
73 { .. } = x;
74
75
76 let x = Unstable2(1, 2, 3);
77
78 let _ = x.0;
79 let _ = x.1;
80 let _ = x.2;
81 //~^ ERROR use of deprecated item
82
83 let Unstable2
84 (_,
85 _,
86 _)
87 //~^ ERROR use of deprecated item
88 = x;
89 let Unstable2
90 // the patterns are all fine:
91 (..) = x;
92
93
94 let x = Deprecated {
95 //~^ ERROR use of deprecated item
96 inherit: 1,
97 //~^ ERROR use of deprecated item
98 override1: 2,
99 //~^ ERROR use of deprecated item
100 override2: 3,
101 //~^ ERROR use of deprecated item
102 };
103
104 let _ = x.inherit;
105 //~^ ERROR use of deprecated item
106 let _ = x.override1;
107 //~^ ERROR use of deprecated item
108 let _ = x.override2;
109 //~^ ERROR use of deprecated item
110
111 let Deprecated {
112 //~^ ERROR use of deprecated item
113 inherit: _,
114 //~^ ERROR use of deprecated item
115 override1: _,
116 //~^ ERROR use of deprecated item
117 override2: _
118 //~^ ERROR use of deprecated item
119 } = x;
120
121 let Deprecated
122 //~^ ERROR use of deprecated item
123 // the patterns are all fine:
124 { .. } = x;
125
126 let x = Deprecated2(1, 2, 3);
127 //~^ ERROR use of deprecated item
128
129 let _ = x.0;
130 //~^ ERROR use of deprecated item
131 let _ = x.1;
132 //~^ ERROR use of deprecated item
133 let _ = x.2;
134 //~^ ERROR use of deprecated item
135
136 let Deprecated2
137 //~^ ERROR use of deprecated item
138 (_,
139 //~^ ERROR use of deprecated item
140 _,
141 //~^ ERROR use of deprecated item
142 _)
143 //~^ ERROR use of deprecated item
144 = x;
145 let Deprecated2
146 //~^ ERROR use of deprecated item
147 // the patterns are all fine:
148 (..) = x;
149 }
150}
151
152mod this_crate {
153 #[stable(feature = "rust1", since = "1.0.0")]
154 struct Stable {
155 inherit: u8,
dfeec247 156 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
157 override1: u8,
158 #[rustc_deprecated(since = "1.0.0", reason = "text")]
dfeec247 159 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
160 override2: u8,
161 }
162
163 #[stable(feature = "rust1", since = "1.0.0")]
164 struct Stable2(u8,
165 #[stable(feature = "rust1", since = "1.0.0")] u8,
dfeec247 166 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
167 #[rustc_deprecated(since = "1.0.0", reason = "text")] u8);
168
dfeec247 169 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
170 struct Unstable {
171 inherit: u8,
172 #[stable(feature = "rust1", since = "1.0.0")]
173 override1: u8,
174 #[rustc_deprecated(since = "1.0.0", reason = "text")]
dfeec247 175 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
176 override2: u8,
177 }
178
dfeec247 179 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
180 struct Unstable2(u8,
181 #[stable(feature = "rust1", since = "1.0.0")] u8,
dfeec247 182 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
183 #[rustc_deprecated(since = "1.0.0", reason = "text")] u8);
184
dfeec247 185 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
186 #[rustc_deprecated(since = "1.0.0", reason = "text")]
187 struct Deprecated {
188 inherit: u8,
189 #[stable(feature = "rust1", since = "1.0.0")]
190 override1: u8,
dfeec247 191 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
192 override2: u8,
193 }
194
dfeec247 195 #[unstable(feature = "unstable_test_feature", issue = "none")]
476ff2be
SL
196 #[rustc_deprecated(since = "1.0.0", reason = "text")]
197 struct Deprecated2(u8,
198 #[stable(feature = "rust1", since = "1.0.0")] u8,
dfeec247 199 #[unstable(feature = "unstable_test_feature", issue = "none")] u8);
476ff2be
SL
200
201 pub fn foo() {
202 let x = Stable {
203 inherit: 1,
204 override1: 2,
205 override2: 3,
206 //~^ ERROR use of deprecated item
207 };
208
209 let _ = x.inherit;
210 let _ = x.override1;
211 let _ = x.override2;
212 //~^ ERROR use of deprecated item
213
214 let Stable {
215 inherit: _,
216 override1: _,
217 override2: _
218 //~^ ERROR use of deprecated item
219 } = x;
220 // all fine
221 let Stable { .. } = x;
222
223 let x = Stable2(1, 2, 3);
224
225 let _ = x.0;
226 let _ = x.1;
227 let _ = x.2;
228 //~^ ERROR use of deprecated item
229
230 let Stable2(_,
231 _,
232 _)
233 //~^ ERROR use of deprecated item
234 = x;
235 // all fine
236 let Stable2(..) = x;
237
238
239 let x = Unstable {
240 inherit: 1,
241 override1: 2,
242 override2: 3,
243 //~^ ERROR use of deprecated item
244 };
245
246 let _ = x.inherit;
247 let _ = x.override1;
248 let _ = x.override2;
249 //~^ ERROR use of deprecated item
250
251 let Unstable {
252 inherit: _,
253 override1: _,
254 override2: _
255 //~^ ERROR use of deprecated item
256 } = x;
257
258 let Unstable
259 // the patterns are all fine:
260 { .. } = x;
261
262
263 let x = Unstable2(1, 2, 3);
264
265 let _ = x.0;
266 let _ = x.1;
267 let _ = x.2;
268 //~^ ERROR use of deprecated item
269
270 let Unstable2
271 (_,
272 _,
273 _)
274 //~^ ERROR use of deprecated item
275 = x;
276 let Unstable2
277 // the patterns are all fine:
278 (..) = x;
279
280
281 let x = Deprecated {
282 //~^ ERROR use of deprecated item
283 inherit: 1,
284 //~^ ERROR use of deprecated item
285 override1: 2,
286 //~^ ERROR use of deprecated item
287 override2: 3,
288 //~^ ERROR use of deprecated item
289 };
290
291 let _ = x.inherit;
292 //~^ ERROR use of deprecated item
293 let _ = x.override1;
294 //~^ ERROR use of deprecated item
295 let _ = x.override2;
296 //~^ ERROR use of deprecated item
297
298 let Deprecated {
299 //~^ ERROR use of deprecated item
300 inherit: _,
301 //~^ ERROR use of deprecated item
302 override1: _,
303 //~^ ERROR use of deprecated item
304 override2: _
305 //~^ ERROR use of deprecated item
306 } = x;
307
308 let Deprecated
309 //~^ ERROR use of deprecated item
310 // the patterns are all fine:
311 { .. } = x;
312
313 let x = Deprecated2(1, 2, 3);
314 //~^ ERROR use of deprecated item
315
316 let _ = x.0;
317 //~^ ERROR use of deprecated item
318 let _ = x.1;
319 //~^ ERROR use of deprecated item
320 let _ = x.2;
321 //~^ ERROR use of deprecated item
322
323 let Deprecated2
324 //~^ ERROR use of deprecated item
325 (_,
326 //~^ ERROR use of deprecated item
327 _,
328 //~^ ERROR use of deprecated item
329 _)
330 //~^ ERROR use of deprecated item
331 = x;
332 let Deprecated2
333 //~^ ERROR use of deprecated item
334 // the patterns are all fine:
335 (..) = x;
336 }
337}
338
339fn main() {}