summaryrefslogtreecommitdiffstats
path: root/src/test/ui/uninhabited/uninhabited-matches-feature-gated.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/uninhabited/uninhabited-matches-feature-gated.rs')
-rw-r--r--src/test/ui/uninhabited/uninhabited-matches-feature-gated.rs39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/test/ui/uninhabited/uninhabited-matches-feature-gated.rs b/src/test/ui/uninhabited/uninhabited-matches-feature-gated.rs
deleted file mode 100644
index e804afcf9..000000000
--- a/src/test/ui/uninhabited/uninhabited-matches-feature-gated.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-use std::mem::zeroed;
-enum Void {}
-
-fn main() {
- let x: Result<u32, &'static Void> = Ok(23);
- let _ = match x { //~ ERROR non-exhaustive
- Ok(n) => n,
- };
-
- // This is pretty much instant UB. However, we have no choice -- we need to
- // test matching on a reference to `&Void`; we cannot do anything other than
- // just accept the fact that this is UB if `main` did run, but it doesn't;
- // this test only checks that these are feature-gated.
- let x: &Void = unsafe { zeroed() };
- let _ = match x {}; //~ ERROR non-exhaustive
-
- let x: (Void,) = unsafe { zeroed() };
- let _ = match x {}; //~ ERROR non-exhaustive
-
- let x: [Void; 1] = unsafe { zeroed() };
- let _ = match x {}; //~ ERROR non-exhaustive
-
- let x: &[Void] = unsafe { zeroed() };
- let _ = match x { //~ ERROR non-exhaustive
- &[] => (),
- };
-
- let x: Void = unsafe { zeroed() };
- let _ = match x {}; // okay
-
- let x: Result<u32, Void> = Ok(23);
- let _ = match x { //~ ERROR non-exhaustive
- Ok(x) => x,
- };
-
- let x: Result<u32, Void> = Ok(23);
- let Ok(x) = x;
- //~^ ERROR refutable
-}