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