File tree Expand file tree Collapse file tree 1 file changed +3
-4
lines changed Expand file tree Collapse file tree 1 file changed +3
-4
lines changed Original file line number Diff line number Diff line change @@ -1702,22 +1702,21 @@ impl<'tcx> TyS<'tcx> {
17021702 /// will be `Abi::Uninhabited`. (Note that uninhabited types may have nonzero
17031703 /// size, to account for partial initialisation. See #49298 for details.)
17041704 pub fn conservative_is_privately_uninhabited ( & self , tcx : TyCtxt < ' tcx > ) -> bool {
1705- // FIXME(varkor): we can make this less conversative by substituting concrete
1706- // type arguments.
17071705 match self . sty {
17081706 ty:: Never => true ,
17091707 ty:: Adt ( def, _) if def. is_union ( ) => {
17101708 // For now, `union`s are never considered uninhabited.
17111709 false
17121710 }
1713- ty:: Adt ( def, _ ) => {
1711+ ty:: Adt ( def, substs ) => {
17141712 // Any ADT is uninhabited if either:
17151713 // (a) It has no variants (i.e. an empty `enum`);
17161714 // (b) Each of its variants (a single one in the case of a `struct`) has at least
17171715 // one uninhabited field.
17181716 def. variants . iter ( ) . all ( |var| {
17191717 var. fields . iter ( ) . any ( |field| {
1720- tcx. type_of ( field. did ) . conservative_is_privately_uninhabited ( tcx)
1718+ tcx. type_of ( field. did ) . subst ( tcx, substs)
1719+ . conservative_is_privately_uninhabited ( tcx)
17211720 } )
17221721 } )
17231722 }
You can’t perform that action at this time.
0 commit comments