summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias-enum-variants/issue-63151-dead-code-lint-fields-in-patterns.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/type-alias-enum-variants/issue-63151-dead-code-lint-fields-in-patterns.rs')
-rw-r--r--src/test/ui/type-alias-enum-variants/issue-63151-dead-code-lint-fields-in-patterns.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-enum-variants/issue-63151-dead-code-lint-fields-in-patterns.rs b/src/test/ui/type-alias-enum-variants/issue-63151-dead-code-lint-fields-in-patterns.rs
new file mode 100644
index 000000000..66fb8dd0d
--- /dev/null
+++ b/src/test/ui/type-alias-enum-variants/issue-63151-dead-code-lint-fields-in-patterns.rs
@@ -0,0 +1,26 @@
+// check-pass
+
+// Regression test for the issue #63151:
+// Spurious unused field warning when matching variants under a `Self` scope
+//
+// This test checks that the `dead_code` lint properly inspects fields
+// in struct patterns that use a type relative path.
+
+#![deny(dead_code)]
+
+enum Enum {
+ Variant { field: usize }
+}
+
+impl Enum {
+ fn read_field(self) -> usize {
+ match self {
+ Self::Variant { field } => field
+ }
+ }
+}
+
+fn main() {
+ let e = Enum::Variant { field: 42 };
+ println!("{}", e.read_field());
+}