about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src/rustc.rs
diff options
context:
space:
mode:
authorMaja Kądziołka <maya@compilercrim.es>2025-03-03 12:54:26 +0100
committerMaja Kądziołka <maya@compilercrim.es>2025-03-07 16:16:36 +0100
commit61f70003c2122313faf77185b6e5ec4bc2ba3bb5 (patch)
treec3bc0b0b03c47959e4b5d0de200f1679b5e9f0db /compiler/rustc_pattern_analysis/src/rustc.rs
parent59a9b9e9d776cb5d6bc02e99c4dce4f94f622232 (diff)
downloadrust-61f70003c2122313faf77185b6e5ec4bc2ba3bb5.tar.gz
rust-61f70003c2122313faf77185b6e5ec4bc2ba3bb5.zip
Add helper methods checking for "#[non_exhaustive] that's active"
A check for `#[non_exhaustive]` is often done in combination with
checking whether the type is local to the crate, in a variety of ways.
Create a helper method and standardize on it as the way to check for
this.
Diffstat (limited to 'compiler/rustc_pattern_analysis/src/rustc.rs')
-rw-r--r--compiler/rustc_pattern_analysis/src/rustc.rs4
1 files changed, 1 insertions, 3 deletions
diff --git a/compiler/rustc_pattern_analysis/src/rustc.rs b/compiler/rustc_pattern_analysis/src/rustc.rs
index 88194c737a6..fec525c9e8c 100644
--- a/compiler/rustc_pattern_analysis/src/rustc.rs
+++ b/compiler/rustc_pattern_analysis/src/rustc.rs
@@ -150,9 +150,7 @@ impl<'p, 'tcx: 'p> RustcPatCtxt<'p, 'tcx> {
     /// Returns whether the given type is an enum from another crate declared `#[non_exhaustive]`.
     pub fn is_foreign_non_exhaustive_enum(&self, ty: RevealedTy<'tcx>) -> bool {
         match ty.kind() {
-            ty::Adt(def, ..) => {
-                def.is_enum() && def.is_variant_list_non_exhaustive() && !def.did().is_local()
-            }
+            ty::Adt(def, ..) => def.variant_list_has_applicable_non_exhaustive(),
             _ => false,
         }
     }