X, //~ ERROR variant is never used
Y { //~ ERROR variant is never used
a: String,
- b: i32, //~ ERROR: struct field is never used
- c: i32, //~ ERROR: struct field is never used
+ b: i32,
+ c: i32,
},
Z
}
+enum ABC { //~ ERROR enum is never used
+ A,
+ B {
+ a: String,
+ b: i32,
+ c: i32,
+ },
+ C
+}
+
+// ensure struct variants get warning for their fields
+enum IJK {
+ I, //~ ERROR variant is never used
+ J {
+ a: String,
+ b: i32, //~ ERROR struct field is never used
+ c: i32, //~ ERROR struct field is never used
+ },
+ K //~ ERROR variant is never used
+
+}
+
+fn struct_variant_partial_use(b: IJK) -> String {
+ match b {
+ IJK::J { a, b: _, .. } => a,
+ _ => "".to_string()
+ }
+}
+
fn field_match_in_patterns(b: XYZ) -> String {
match b {
XYZ::Y { a, b: _, .. } => a,
fn main() {
field_read(Foo { x: 1, b: false });
field_match_in_patterns(XYZ::Z);
+ struct_variant_partial_use(IJK::J { a: "".into(), b: 1, c: -1 });
field_match_in_let(Bar { x: 42, b: true, c: false, _guard: () });
let _ = Baz { x: 0 };
}