From f6107ca17342c34b3fd19bb88e3e57f99b07864e Mon Sep 17 00:00:00 2001 From: Michael Goulet Date: Tue, 18 Mar 2025 18:23:32 +0000 Subject: Consider fields to be inhabited if they are unstable --- compiler/rustc_pattern_analysis/src/rustc.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'compiler/rustc_pattern_analysis/src') diff --git a/compiler/rustc_pattern_analysis/src/rustc.rs b/compiler/rustc_pattern_analysis/src/rustc.rs index 88194c737a6..68d4d083a74 100644 --- a/compiler/rustc_pattern_analysis/src/rustc.rs +++ b/compiler/rustc_pattern_analysis/src/rustc.rs @@ -232,7 +232,11 @@ impl<'p, 'tcx: 'p> RustcPatCtxt<'p, 'tcx> { let is_visible = adt.is_enum() || field.vis.is_accessible_from(cx.module, cx.tcx); let is_uninhabited = cx.is_uninhabited(*ty); - let skip = is_uninhabited && !is_visible; + let is_unstable = cx + .tcx + .lookup_stability(field.did) + .is_some_and(|stab| stab.is_unstable()); + let skip = is_uninhabited && (!is_visible || is_unstable); (ty, PrivateUninhabitedField(skip)) }); cx.dropless_arena.alloc_from_iter(tys) -- cgit 1.4.1-3-g733a5