File tree 1 file changed +8
-1
lines changed
compiler/rustc_middle/src/ty/inhabitedness
1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change 43
43
//! This code should only compile in modules where the uninhabitedness of `Foo`
44
44
//! is visible.
45
45
46
+ use rustc_span:: sym;
46
47
use rustc_type_ir:: TyKind :: * ;
47
48
use tracing:: instrument;
48
49
@@ -90,7 +91,13 @@ impl<'tcx> VariantDef {
90
91
// `let pred = pred.or(InhabitedPredicate::IsUnstable(field.did));`
91
92
// but this is unnecessary for now, since it would only affect nightly-only
92
93
// 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
+ {
94
101
return InhabitedPredicate :: True ;
95
102
}
96
103
let pred = tcx. type_of ( field. did ) . instantiate_identity ( ) . inhabited_predicate ( tcx) ;
You can’t perform that action at this time.
0 commit comments