From b86ed4a425b3fa830fa031ed7fe7187728403440 Mon Sep 17 00:00:00 2001 From: Smitty Date: Fri, 9 Jul 2021 15:22:12 -0400 Subject: [PATCH] panic when trying to destructure union as enum --- compiler/rustc_mir_build/src/check_unsafety.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_mir_build/src/check_unsafety.rs b/compiler/rustc_mir_build/src/check_unsafety.rs index 0aec63182952..c3af98fae9d5 100644 --- a/compiler/rustc_mir_build/src/check_unsafety.rs +++ b/compiler/rustc_mir_build/src/check_unsafety.rs @@ -201,14 +201,14 @@ fn visit_pat(&mut self, pat: &Pat<'tcx>) { AscribeUserType { .. } | // creating a union literal Constant { .. } => {}, - Variant { .. } | Leaf { .. } | Or { .. } => { + Leaf { .. } | Or { .. } => { // pattern matching with a union and not doing something like v = Union { bar: 5 } self.in_union_destructure = true; visit::walk_pat(self, pat); self.in_union_destructure = false; return; // don't walk pattern } - Deref { .. } | Range { .. } | Slice { .. } | Array { .. } => + Variant { .. } | Deref { .. } | Range { .. } | Slice { .. } | Array { .. } => unreachable!("impossible union destructuring type"), } }