@@ -130,7 +130,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
130130 element. size . checked_mul ( count, & self . cx ) . ok_or ( LayoutCalculatorError :: SizeOverflow ) ?;
131131
132132 Ok ( LayoutData {
133- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
133+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
134134 fields : FieldsShape :: Array { stride : element. size , count } ,
135135 backend_repr : BackendRepr :: Memory { sized : count_if_sized. is_some ( ) } ,
136136 largest_niche : element. largest_niche . filter ( |_| count != 0 ) ,
@@ -181,7 +181,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
181181 let size = size. align_to ( align. abi ) ;
182182
183183 Ok ( LayoutData {
184- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
184+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
185185 fields : FieldsShape :: Arbitrary {
186186 offsets : [ Size :: ZERO ] . into ( ) ,
187187 memory_index : [ 0 ] . into ( ) ,
@@ -469,7 +469,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
469469 . fold ( repr. field_shuffle_seed , |acc, seed| acc. wrapping_add ( seed) ) ;
470470
471471 Ok ( LayoutData {
472- variants : Variants :: Single { index : only_variant_idx } ,
472+ variants : Variants :: Single { index : only_variant_idx, variants : None } ,
473473 fields : FieldsShape :: Union ( union_field_count) ,
474474 backend_repr,
475475 largest_niche : None ,
@@ -510,7 +510,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
510510 } ;
511511
512512 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 } ;
514514
515515 if is_special_no_niche {
516516 let hide_niches = |scalar : & mut _ | match scalar {
@@ -617,7 +617,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
617617 . iter_enumerated ( )
618618 . map ( |( j, v) | {
619619 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 } ;
621621
622622 align = align. max ( st. align ) ;
623623 max_repr_align = max_repr_align. max ( st. max_repr_align ) ;
@@ -853,7 +853,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
853853 } ;
854854 let mut st = self . univariant ( field_layouts, repr, struct_kind) ?;
855855
856- st. variants = Variants :: Single { index : i } ;
856+ st. variants = Variants :: Single { index : i, variants : None } ;
857857 // Find the first field we can't move later
858858 // to make room for a larger discriminant.
859859 for field_idx in st. fields . index_by_increasing_offset ( ) {
@@ -1118,7 +1118,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
11181118 ) ;
11191119 return Ok ( LayoutData {
11201120 fields : FieldsShape :: Arbitrary { offsets : [ ] . into ( ) , memory_index : [ ] . into ( ) } ,
1121- variants : Variants :: Empty ,
1121+ variants : Variants :: Empty { variants : Some ( layout_variants ) } ,
11221122 backend_repr : BackendRepr :: Memory { sized : true } ,
11231123 largest_niche : None ,
11241124 uninhabited : true ,
@@ -1512,7 +1512,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
15121512 let seed = field_seed. wrapping_add ( repr. field_shuffle_seed ) ;
15131513
15141514 Ok ( LayoutData {
1515- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
1515+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
15161516 fields : FieldsShape :: Arbitrary { offsets, memory_index } ,
15171517 backend_repr : abi,
15181518 largest_niche,
0 commit comments