summaryrefslogtreecommitdiffstats
path: root/src/test/ui/uninhabited/privately-uninhabited-dead-code.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/uninhabited/privately-uninhabited-dead-code.rs')
-rw-r--r--src/test/ui/uninhabited/privately-uninhabited-dead-code.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/ui/uninhabited/privately-uninhabited-dead-code.rs b/src/test/ui/uninhabited/privately-uninhabited-dead-code.rs
new file mode 100644
index 000000000..f476704cd
--- /dev/null
+++ b/src/test/ui/uninhabited/privately-uninhabited-dead-code.rs
@@ -0,0 +1,20 @@
+// build-pass (FIXME(62277): could be check-pass?)
+
+#![deny(unused_variables)]
+
+mod foo {
+ enum Bar {}
+
+ #[allow(dead_code)]
+ pub struct Foo {
+ value: Bar, // "privately" uninhabited
+ }
+
+ pub fn give_foo() -> Foo { panic!() }
+}
+
+fn main() {
+ let a = 42;
+ foo::give_foo();
+ println!("Hello, {}", a); // ok: we can't tell that this code is dead
+}