]>
Commit | Line | Data |
---|---|---|
1a4d82fc JJ |
1 | #![allow(unused_variables)] |
2 | #![allow(non_camel_case_types)] | |
3 | #![deny(dead_code)] | |
1a4d82fc | 4 | |
1a4d82fc JJ |
5 | struct Foo { |
6 | x: usize, | |
9e0c209e | 7 | b: bool, //~ ERROR: field is never used |
1a4d82fc JJ |
8 | } |
9 | ||
10 | fn field_read(f: Foo) -> usize { | |
11 | f.x.pow(2) | |
12 | } | |
13 | ||
14 | enum XYZ { | |
ff7c6d11 XL |
15 | X, //~ ERROR variant is never constructed |
16 | Y { //~ ERROR variant is never constructed | |
1a4d82fc | 17 | a: String, |
92a42be0 SL |
18 | b: i32, |
19 | c: i32, | |
1a4d82fc JJ |
20 | }, |
21 | Z | |
22 | } | |
23 | ||
92a42be0 SL |
24 | enum ABC { //~ ERROR enum is never used |
25 | A, | |
26 | B { | |
27 | a: String, | |
28 | b: i32, | |
29 | c: i32, | |
30 | }, | |
31 | C | |
32 | } | |
33 | ||
34 | // ensure struct variants get warning for their fields | |
35 | enum IJK { | |
ff7c6d11 | 36 | I, //~ ERROR variant is never constructed |
92a42be0 SL |
37 | J { |
38 | a: String, | |
9e0c209e SL |
39 | b: i32, //~ ERROR field is never used |
40 | c: i32, //~ ERROR field is never used | |
92a42be0 | 41 | }, |
ff7c6d11 | 42 | K //~ ERROR variant is never constructed |
92a42be0 SL |
43 | |
44 | } | |
45 | ||
46 | fn struct_variant_partial_use(b: IJK) -> String { | |
47 | match b { | |
48 | IJK::J { a, b: _, .. } => a, | |
49 | _ => "".to_string() | |
50 | } | |
51 | } | |
52 | ||
1a4d82fc JJ |
53 | fn field_match_in_patterns(b: XYZ) -> String { |
54 | match b { | |
62682a34 | 55 | XYZ::Y { a, b: _, .. } => a, |
1a4d82fc JJ |
56 | _ => "".to_string() |
57 | } | |
58 | } | |
59 | ||
60 | struct Bar { | |
9e0c209e | 61 | x: usize, //~ ERROR: field is never used |
1a4d82fc | 62 | b: bool, |
9e0c209e | 63 | c: bool, //~ ERROR: field is never used |
1a4d82fc JJ |
64 | _guard: () |
65 | } | |
66 | ||
67 | #[repr(C)] | |
68 | struct Baz { | |
62682a34 | 69 | x: u32, |
1a4d82fc JJ |
70 | } |
71 | ||
72 | fn field_match_in_let(f: Bar) -> bool { | |
62682a34 | 73 | let Bar { b, c: _, .. } = f; |
1a4d82fc JJ |
74 | b |
75 | } | |
76 | ||
77 | fn main() { | |
62682a34 | 78 | field_read(Foo { x: 1, b: false }); |
1a4d82fc | 79 | field_match_in_patterns(XYZ::Z); |
92a42be0 | 80 | struct_variant_partial_use(IJK::J { a: "".into(), b: 1, c: -1 }); |
62682a34 | 81 | field_match_in_let(Bar { x: 42, b: true, c: false, _guard: () }); |
1a4d82fc JJ |
82 | let _ = Baz { x: 0 }; |
83 | } |