about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorr0cky <mu001999@outlook.com>2024-01-02 00:14:21 +0800
committerr0cky <mu001999@outlook.com>2024-02-07 10:22:16 +0800
commit40878ca6ea79d6e55e430846a2de3350a76cd08f (patch)
treec8cd71be649f14f5ac8b72024928f17acd6b899d /tests
parent586893c7b0adabf5f0a4c155fd86e13cf470e74b (diff)
downloadrust-40878ca6ea79d6e55e430846a2de3350a76cd08f.tar.gz
rust-40878ca6ea79d6e55e430846a2de3350a76cd08f.zip
Make traits / trait methods detected by the dead code lint!
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/lint/dead-code/issue-41883.rs29
-rw-r--r--tests/ui/lint/dead-code/issue-41883.stderr36
2 files changed, 65 insertions, 0 deletions
diff --git a/tests/ui/lint/dead-code/issue-41883.rs b/tests/ui/lint/dead-code/issue-41883.rs
new file mode 100644
index 00000000000..e165861e893
--- /dev/null
+++ b/tests/ui/lint/dead-code/issue-41883.rs
@@ -0,0 +1,29 @@
+#![deny(dead_code)]
+
+enum Category {
+    Dead, //~ ERROR variant `Dead` is never constructed
+    Used,
+}
+
+trait UnusedTrait { //~ ERROR trait `UnusedTrait` is never used
+    fn this_is_unused(&self) -> Category {
+        Category::Dead
+    }
+}
+
+struct UnusedStruct; //~ ERROR struct `UnusedStruct` is never constructed
+
+impl UnusedTrait for UnusedStruct {
+    fn this_is_unused(&self) -> Category {
+        Category::Used
+    }
+}
+
+mod private {
+    #[derive(Debug)]
+    struct UnusedStruct; //~ ERROR struct `UnusedStruct` is never constructed
+}
+
+fn main() {
+    let _c = Category::Used;
+}
diff --git a/tests/ui/lint/dead-code/issue-41883.stderr b/tests/ui/lint/dead-code/issue-41883.stderr
new file mode 100644
index 00000000000..cf079e4dda3
--- /dev/null
+++ b/tests/ui/lint/dead-code/issue-41883.stderr
@@ -0,0 +1,36 @@
+error: variant `Dead` is never constructed
+  --> $DIR/issue-41883.rs:4:5
+   |
+LL | enum Category {
+   |      -------- variant in this enum
+LL |     Dead,
+   |     ^^^^
+   |
+note: the lint level is defined here
+  --> $DIR/issue-41883.rs:1:9
+   |
+LL | #![deny(dead_code)]
+   |         ^^^^^^^^^
+
+error: trait `UnusedTrait` is never used
+  --> $DIR/issue-41883.rs:8:7
+   |
+LL | trait UnusedTrait {
+   |       ^^^^^^^^^^^
+
+error: struct `UnusedStruct` is never constructed
+  --> $DIR/issue-41883.rs:14:8
+   |
+LL | struct UnusedStruct;
+   |        ^^^^^^^^^^^^
+
+error: struct `UnusedStruct` is never constructed
+  --> $DIR/issue-41883.rs:24:12
+   |
+LL |     struct UnusedStruct;
+   |            ^^^^^^^^^^^^
+   |
+   = note: `UnusedStruct` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
+
+error: aborting due to 4 previous errors
+