]> git.lizzy.rs Git - rust.git/commitdiff
Remove never_type feature requirement for exhaustive patterns
authorMarcel Hellwig <921462+hellow554@users.noreply.github.com>
Fri, 5 Jul 2019 10:55:05 +0000 (12:55 +0200)
committerMarcel Hellwig <git@cookiesoft.de>
Fri, 5 Jul 2019 20:14:27 +0000 (22:14 +0200)
src/librustc_mir/build/matches/simplify.rs
src/test/ui/uninhabited/exhaustive-wo-nevertype-issue-51221.rs [new file with mode: 0644]

index 7125eb6850bb6c6f7639362b28406ea61d299fdd..d9b748f71f011994a57d431a79ac242bb4e4f23f 100644 (file)
@@ -161,7 +161,6 @@ fn simplify_match_pair<'pat>(&mut self,
             PatternKind::Variant { adt_def, substs, variant_index, ref subpatterns } => {
                 let irrefutable = adt_def.variants.iter_enumerated().all(|(i, v)| {
                     i == variant_index || {
-                        self.hir.tcx().features().never_type &&
                         self.hir.tcx().features().exhaustive_patterns &&
                         !v.uninhabited_from(self.hir.tcx(), substs, adt_def.adt_kind()).is_empty()
                     }
diff --git a/src/test/ui/uninhabited/exhaustive-wo-nevertype-issue-51221.rs b/src/test/ui/uninhabited/exhaustive-wo-nevertype-issue-51221.rs
new file mode 100644 (file)
index 0000000..b594320
--- /dev/null
@@ -0,0 +1,9 @@
+// check-pass
+
+#![feature(exhaustive_patterns)]
+
+enum Void {}
+fn main() {
+    let a: Option<Void> = None;
+    let None = a;
+}