about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2020-03-06 06:43:11 -0500
committerFelix S. Klock II <pnkfelix@pnkfx.org>2020-03-06 06:46:37 -0500
commitb4422fb14b9e0c030e9da6fa943f0e4850b25a85 (patch)
tree719cedc496787cc3c0a81d0484b735ef14d0bf6f
parent40809b0585d5fe3ddad39fe00a608394ad1dec30 (diff)
downloadrust-b4422fb14b9e0c030e9da6fa943f0e4850b25a85.tar.gz
rust-b4422fb14b9e0c030e9da6fa943f0e4850b25a85.zip
Added oli's multivariant test case (alpha renaming the enum name itself).
(And added Ralf's suggested test.)

Added my own three-variant multi-variant as well.
-rw-r--r--src/test/ui/consts/issue-69191-ice-on-uninhabited-enum-field.rs66
1 files changed, 63 insertions, 3 deletions
diff --git a/src/test/ui/consts/issue-69191-ice-on-uninhabited-enum-field.rs b/src/test/ui/consts/issue-69191-ice-on-uninhabited-enum-field.rs
index e22ddb0f5ae..5b7c7be42cf 100644
--- a/src/test/ui/consts/issue-69191-ice-on-uninhabited-enum-field.rs
+++ b/src/test/ui/consts/issue-69191-ice-on-uninhabited-enum-field.rs
@@ -5,13 +5,30 @@
 
 pub enum Void {}
 
-enum UninhabitedUnivariant { _Variant(Void), }
+enum UninhabitedUnivariant {
+    _Variant(Void),
+}
+
+enum UninhabitedMultivariant2 {
+    _Variant(Void),
+    _Warriont(Void),
+}
+
+enum UninhabitedMultivariant3 {
+    _Variant(Void),
+    _Warriont(Void),
+    _Worrynot(Void),
+}
 
 #[repr(C)]
-enum UninhabitedUnivariantC { _Variant(Void), }
+enum UninhabitedUnivariantC {
+    _Variant(Void),
+}
 
 #[repr(i32)]
-enum UninhabitedUnivariant32 { _Variant(Void), }
+enum UninhabitedUnivariant32 {
+    _Variant(Void),
+}
 
 fn main() {
     let _seed: UninhabitedUnivariant = None.unwrap();
@@ -19,6 +36,49 @@ fn main() {
         UninhabitedUnivariant::_Variant(_x) => {}
     }
 
+    let _seed: UninhabitedMultivariant2 = None.unwrap();
+    match _seed {
+        UninhabitedMultivariant2::_Variant(_x) => {}
+        UninhabitedMultivariant2::_Warriont(_x) => {}
+    }
+
+    let _seed: UninhabitedMultivariant2 = None.unwrap();
+    match _seed {
+        UninhabitedMultivariant2::_Variant(_x) => {}
+        _ => {}
+    }
+
+    let _seed: UninhabitedMultivariant2 = None.unwrap();
+    match _seed {
+        UninhabitedMultivariant2::_Warriont(_x) => {}
+        _ => {}
+    }
+
+    let _seed: UninhabitedMultivariant3 = None.unwrap();
+    match _seed {
+        UninhabitedMultivariant3::_Variant(_x) => {}
+        UninhabitedMultivariant3::_Warriont(_x) => {}
+        UninhabitedMultivariant3::_Worrynot(_x) => {}
+    }
+
+    let _seed: UninhabitedMultivariant3 = None.unwrap();
+    match _seed {
+        UninhabitedMultivariant3::_Variant(_x) => {}
+        _ => {}
+    }
+
+    let _seed: UninhabitedMultivariant3 = None.unwrap();
+    match _seed {
+        UninhabitedMultivariant3::_Warriont(_x) => {}
+        _ => {}
+    }
+
+    let _seed: UninhabitedMultivariant3 = None.unwrap();
+    match _seed {
+        UninhabitedMultivariant3::_Worrynot(_x) => {}
+        _ => {}
+    }
+
     let _seed: UninhabitedUnivariantC = None.unwrap();
     match _seed {
         UninhabitedUnivariantC::_Variant(_x) => {}