summaryrefslogtreecommitdiffstats
path: root/tests/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs')
-rw-r--r--tests/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs b/tests/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs
new file mode 100644
index 000000000..e3631d014
--- /dev/null
+++ b/tests/ui/lint/unused/issue-67691-unused-field-in-or-pattern.rs
@@ -0,0 +1,85 @@
+// 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<MyEnum>) {
+ use MyEnum::*;
+
+ match x {
+ Some(A { i, j } | B { i, j }) => { //~ ERROR unused variable
+ println!("{}", i);
+ }
+
+ _ => {}
+ }
+}
+
+pub fn inner_with_ref(x: Option<MyEnum>) {
+ 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));
+}