@@ -1352,17 +1352,6 @@ impl<'a, 'tcx> LayoutDetails {
1352
1352
} ) . collect :: < Result < Vec < _ > , _ > > ( )
1353
1353
} ) . collect :: < Result < Vec < _ > , _ > > ( ) ?;
1354
1354
1355
- let ( inh_first, inh_second) = {
1356
- let mut inh_variants = ( 0 ..variants. len ( ) ) . filter ( |& v| {
1357
- variants[ v] . iter ( ) . all ( |f| f. abi != Abi :: Uninhabited )
1358
- } ) ;
1359
- ( inh_variants. next ( ) , inh_variants. next ( ) )
1360
- } ;
1361
- if inh_first. is_none ( ) {
1362
- // Uninhabited because it has no variants, or only uninhabited ones.
1363
- return Ok ( tcx. intern_layout ( LayoutDetails :: uninhabited ( 0 ) ) ) ;
1364
- }
1365
-
1366
1355
if def. is_union ( ) {
1367
1356
let packed = def. repr . packed ( ) ;
1368
1357
if packed && def. repr . align > 0 {
@@ -1400,6 +1389,17 @@ impl<'a, 'tcx> LayoutDetails {
1400
1389
} ) ) ;
1401
1390
}
1402
1391
1392
+ let ( inh_first, inh_second) = {
1393
+ let mut inh_variants = ( 0 ..variants. len ( ) ) . filter ( |& v| {
1394
+ variants[ v] . iter ( ) . all ( |f| f. abi != Abi :: Uninhabited )
1395
+ } ) ;
1396
+ ( inh_variants. next ( ) , inh_variants. next ( ) )
1397
+ } ;
1398
+ if inh_first. is_none ( ) {
1399
+ // Uninhabited because it has no variants, or only uninhabited ones.
1400
+ return Ok ( tcx. intern_layout ( LayoutDetails :: uninhabited ( 0 ) ) ) ;
1401
+ }
1402
+
1403
1403
let is_struct = !def. is_enum ( ) ||
1404
1404
// Only one variant is inhabited.
1405
1405
( inh_second. is_none ( ) &&
0 commit comments