@@ -130,7 +130,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
130
130
element. size . checked_mul ( count, & self . cx ) . ok_or ( LayoutCalculatorError :: SizeOverflow ) ?;
131
131
132
132
Ok ( LayoutData {
133
- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
133
+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
134
134
fields : FieldsShape :: Array { stride : element. size , count } ,
135
135
backend_repr : BackendRepr :: Memory { sized : count_if_sized. is_some ( ) } ,
136
136
largest_niche : element. largest_niche . filter ( |_| count != 0 ) ,
@@ -181,7 +181,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
181
181
let size = size. align_to ( align. abi ) ;
182
182
183
183
Ok ( LayoutData {
184
- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
184
+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
185
185
fields : FieldsShape :: Arbitrary {
186
186
offsets : [ Size :: ZERO ] . into ( ) ,
187
187
memory_index : [ 0 ] . into ( ) ,
@@ -469,7 +469,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
469
469
. fold ( repr. field_shuffle_seed , |acc, seed| acc. wrapping_add ( seed) ) ;
470
470
471
471
Ok ( LayoutData {
472
- variants : Variants :: Single { index : only_variant_idx } ,
472
+ variants : Variants :: Single { index : only_variant_idx, variants : None } ,
473
473
fields : FieldsShape :: Union ( union_field_count) ,
474
474
backend_repr,
475
475
largest_niche : None ,
@@ -510,7 +510,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
510
510
} ;
511
511
512
512
let mut st = self . univariant ( & variants[ v] , repr, kind) ?;
513
- st. variants = Variants :: Single { index : v } ;
513
+ st. variants = Variants :: Single { index : v, variants : None } ;
514
514
515
515
if is_special_no_niche {
516
516
let hide_niches = |scalar : & mut _ | match scalar {
@@ -617,7 +617,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
617
617
. iter_enumerated ( )
618
618
. map ( |( j, v) | {
619
619
let mut st = self . univariant ( v, repr, StructKind :: AlwaysSized ) . ok ( ) ?;
620
- st. variants = Variants :: Single { index : j } ;
620
+ st. variants = Variants :: Single { index : j, variants : None } ;
621
621
622
622
align = align. max ( st. align ) ;
623
623
max_repr_align = max_repr_align. max ( st. max_repr_align ) ;
@@ -853,7 +853,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
853
853
} ;
854
854
let mut st = self . univariant ( field_layouts, repr, struct_kind) ?;
855
855
856
- st. variants = Variants :: Single { index : i } ;
856
+ st. variants = Variants :: Single { index : i, variants : None } ;
857
857
// Find the first field we can't move later
858
858
// to make room for a larger discriminant.
859
859
for field_idx in st. fields . index_by_increasing_offset ( ) {
@@ -1118,7 +1118,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
1118
1118
) ;
1119
1119
return Ok ( LayoutData {
1120
1120
fields : FieldsShape :: Arbitrary { offsets : [ ] . into ( ) , memory_index : [ ] . into ( ) } ,
1121
- variants : Variants :: Empty ,
1121
+ variants : Variants :: Empty { variants : Some ( layout_variants ) } ,
1122
1122
backend_repr : BackendRepr :: Memory { sized : true } ,
1123
1123
largest_niche : None ,
1124
1124
uninhabited : true ,
@@ -1512,7 +1512,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
1512
1512
let seed = field_seed. wrapping_add ( repr. field_shuffle_seed ) ;
1513
1513
1514
1514
Ok ( LayoutData {
1515
- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
1515
+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
1516
1516
fields : FieldsShape :: Arbitrary { offsets, memory_index } ,
1517
1517
backend_repr : abi,
1518
1518
largest_niche,
0 commit comments