File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed
compiler/rustc_middle/src/ty/inhabitedness Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change 4343//! This code should only compile in modules where the uninhabitedness of `Foo`
4444//! is visible.
4545
46+ use rustc_span:: sym;
4647use rustc_type_ir:: TyKind :: * ;
4748use tracing:: instrument;
4849
@@ -90,7 +91,13 @@ impl<'tcx> VariantDef {
9091 // `let pred = pred.or(InhabitedPredicate::IsUnstable(field.did));`
9192 // but this is unnecessary for now, since it would only affect nightly-only
9293 // code or code within the standard library itself.
93- if tcx. lookup_stability ( field. did ) . is_some_and ( |stab| stab. is_unstable ( ) ) {
94+ // HACK: We filter out `rustc_private` fields since with the flag
95+ // `-Zforce-unstable-if-unmarked` we consider all unmarked fields to be
96+ // unstable when building the compiler.
97+ if tcx
98+ . lookup_stability ( field. did )
99+ . is_some_and ( |stab| stab. is_unstable ( ) && stab. feature != sym:: rustc_private)
100+ {
94101 return InhabitedPredicate :: True ;
95102 }
96103 let pred = tcx. type_of ( field. did ) . instantiate_identity ( ) . inhabited_predicate ( tcx) ;
You can’t perform that action at this time.
0 commit comments