From b4422fb14b9e0c030e9da6fa943f0e4850b25a85 Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Fri, 6 Mar 2020 06:43:11 -0500 Subject: [PATCH] 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. --- ...sue-69191-ice-on-uninhabited-enum-field.rs | 66 ++++++++++++++++++- 1 file 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 e22ddb0f5ae0c..5b7c7be42cf06 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) => {}