diff options
| author | Maja Kądziołka <maya@compilercrim.es> | 2025-03-03 12:54:26 +0100 |
|---|---|---|
| committer | Maja Kądziołka <maya@compilercrim.es> | 2025-03-07 16:16:36 +0100 |
| commit | 61f70003c2122313faf77185b6e5ec4bc2ba3bb5 (patch) | |
| tree | c3bc0b0b03c47959e4b5d0de200f1679b5e9f0db /compiler/rustc_mir_build/src/errors.rs | |
| parent | 59a9b9e9d776cb5d6bc02e99c4dce4f94f622232 (diff) | |
| download | rust-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_mir_build/src/errors.rs')
| -rw-r--r-- | compiler/rustc_mir_build/src/errors.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/rustc_mir_build/src/errors.rs b/compiler/rustc_mir_build/src/errors.rs index 17b22f25dbb..0e16f871b16 100644 --- a/compiler/rustc_mir_build/src/errors.rs +++ b/compiler/rustc_mir_build/src/errors.rs @@ -613,9 +613,9 @@ impl<'a, G: EmissionGuarantee> Diagnostic<'a, G> for NonExhaustivePatternsTypeNo diag.span_note(span, fluent::mir_build_def_note); } - let is_variant_list_non_exhaustive = matches!(self.ty.kind(), - ty::Adt(def, _) if def.is_variant_list_non_exhaustive() && !def.did().is_local()); - if is_variant_list_non_exhaustive { + let is_non_exhaustive = matches!(self.ty.kind(), + ty::Adt(def, _) if def.variant_list_has_applicable_non_exhaustive()); + if is_non_exhaustive { diag.note(fluent::mir_build_non_exhaustive_type_note); } else { diag.note(fluent::mir_build_type_note); |
