about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/reachable/unreachable-by-call-arguments-issue-139627.rs15
-rw-r--r--tests/ui/reachable/unreachable-by-call-arguments-issue-139627.stderr36
2 files changed, 51 insertions, 0 deletions
diff --git a/tests/ui/reachable/unreachable-by-call-arguments-issue-139627.rs b/tests/ui/reachable/unreachable-by-call-arguments-issue-139627.rs
new file mode 100644
index 00000000000..422ae95e8b7
--- /dev/null
+++ b/tests/ui/reachable/unreachable-by-call-arguments-issue-139627.rs
@@ -0,0 +1,15 @@
+#![deny(unreachable_code)]
+#![deny(unused)]
+
+pub enum Void {}
+
+pub struct S<T>(T);
+
+pub fn foo(void: Void, void1: Void) { //~ ERROR unused variable: `void1`
+    let s = S(void); //~ ERROR unused variable: `s`
+    drop(s); //~ ERROR unreachable expression
+    let s1 = S { 0: void1 };
+    drop(s1);
+}
+
+fn main() {}
diff --git a/tests/ui/reachable/unreachable-by-call-arguments-issue-139627.stderr b/tests/ui/reachable/unreachable-by-call-arguments-issue-139627.stderr
new file mode 100644
index 00000000000..ce24705324e
--- /dev/null
+++ b/tests/ui/reachable/unreachable-by-call-arguments-issue-139627.stderr
@@ -0,0 +1,36 @@
+error: unreachable expression
+  --> $DIR/unreachable-by-call-arguments-issue-139627.rs:10:10
+   |
+LL |     let s = S(void);
+   |             ------- any code following this expression is unreachable
+LL |     drop(s);
+   |          ^ unreachable expression
+   |
+note: this expression has type `S<Void>`, which is uninhabited
+  --> $DIR/unreachable-by-call-arguments-issue-139627.rs:9:13
+   |
+LL |     let s = S(void);
+   |             ^^^^^^^
+note: the lint level is defined here
+  --> $DIR/unreachable-by-call-arguments-issue-139627.rs:2:9
+   |
+LL | #![deny(unused)]
+   |         ^^^^^^
+   = note: `#[deny(unreachable_code)]` implied by `#[deny(unused)]`
+
+error: unused variable: `s`
+  --> $DIR/unreachable-by-call-arguments-issue-139627.rs:9:9
+   |
+LL |     let s = S(void);
+   |         ^ help: if this is intentional, prefix it with an underscore: `_s`
+   |
+   = note: `#[deny(unused_variables)]` implied by `#[deny(unused)]`
+
+error: unused variable: `void1`
+  --> $DIR/unreachable-by-call-arguments-issue-139627.rs:8:24
+   |
+LL | pub fn foo(void: Void, void1: Void) {
+   |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_void1`
+
+error: aborting due to 3 previous errors
+