// FIXME: should be run-rustfix, but rustfix doesn't currently support multipart suggestions, see // #53934 #![deny(unused)] pub enum MyEnum { A { i: i32, j: i32 }, B { i: i32, j: i32 }, } pub enum MixedEnum { A { i: i32 }, B(i32), } pub fn no_ref(x: MyEnum) { use MyEnum::*; match x { A { i, j } | B { i, j } => { //~ ERROR unused variable println!("{}", i); } } } pub fn with_ref(x: MyEnum) { use MyEnum::*; match x { A { i, ref j } | B { i, ref j } => { //~ ERROR unused variable println!("{}", i); } } } pub fn inner_no_ref(x: Option) { use MyEnum::*; match x { Some(A { i, j } | B { i, j }) => { //~ ERROR unused variable println!("{}", i); } _ => {} } } pub fn inner_with_ref(x: Option) { use MyEnum::*; match x { Some(A { i, ref j } | B { i, ref j }) => { //~ ERROR unused variable println!("{}", i); } _ => {} } } pub fn mixed_no_ref(x: MixedEnum) { match x { MixedEnum::A { i } | MixedEnum::B(i) => { //~ ERROR unused variable println!("match"); } } } pub fn mixed_with_ref(x: MixedEnum) { match x { MixedEnum::A { ref i } | MixedEnum::B(ref i) => { //~ ERROR unused variable println!("match"); } } } pub fn main() { no_ref(MyEnum::A { i: 1, j: 2 }); with_ref(MyEnum::A { i: 1, j: 2 }); inner_no_ref(Some(MyEnum::A { i: 1, j: 2 })); inner_with_ref(Some(MyEnum::A { i: 1, j: 2 })); mixed_no_ref(MixedEnum::B(5)); mixed_with_ref(MixedEnum::B(5)); }