@@ -13,7 +13,7 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
13
13
pub fn unit < C : HasDataLayout > ( cx : & C , sized : bool ) -> Self {
14
14
let dl = cx. data_layout ( ) ;
15
15
LayoutData {
16
- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
16
+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
17
17
fields : FieldsShape :: Arbitrary {
18
18
offsets : IndexVec :: new ( ) ,
19
19
memory_index : IndexVec :: new ( ) ,
@@ -33,7 +33,7 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
33
33
let dl = cx. data_layout ( ) ;
34
34
// This is also used for uninhabited enums, so we use `Variants::Empty`.
35
35
LayoutData {
36
- variants : Variants :: Empty ,
36
+ variants : Variants :: Empty { variants : None } ,
37
37
fields : FieldsShape :: Primitive ,
38
38
backend_repr : BackendRepr :: Memory { sized : true } ,
39
39
largest_niche : None ,
@@ -75,7 +75,7 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
75
75
. wrapping_add ( ( range. end as u64 ) . rotate_right ( 16 ) ) ;
76
76
77
77
LayoutData {
78
- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
78
+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
79
79
fields : FieldsShape :: Primitive ,
80
80
backend_repr : BackendRepr :: Scalar ( scalar) ,
81
81
largest_niche,
@@ -105,7 +105,7 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
105
105
let combined_seed = a. size ( dl) . bytes ( ) . wrapping_add ( b. size ( dl) . bytes ( ) ) ;
106
106
107
107
LayoutData {
108
- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
108
+ variants : Variants :: Single { index : VariantIdx :: new ( 0 ) , variants : None } ,
109
109
fields : FieldsShape :: Arbitrary {
110
110
offsets : [ Size :: ZERO , b_offset] . into ( ) ,
111
111
memory_index : [ 0 , 1 ] . into ( ) ,
@@ -121,14 +121,14 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
121
121
}
122
122
}
123
123
124
- /// Returns a dummy layout for an uninhabited variant.
124
+ /// Returns a dummy layout for an absent variant.
125
125
///
126
- /// Uninhabited variants get pruned as part of the layout calculation,
126
+ /// Absent variants get pruned as part of the layout calculation,
127
127
/// so this can be used after the fact to reconstitute a layout.
128
- pub fn uninhabited_variant < C : HasDataLayout > ( cx : & C , index : VariantIdx , fields : usize ) -> Self {
128
+ pub fn absent_variant < C : HasDataLayout > ( cx : & C , index : VariantIdx , fields : usize ) -> Self {
129
129
let dl = cx. data_layout ( ) ;
130
130
LayoutData {
131
- variants : Variants :: Single { index } ,
131
+ variants : Variants :: Single { index, variants : None } ,
132
132
fields : match NonZero :: new ( fields) {
133
133
Some ( fields) => FieldsShape :: Union ( fields) ,
134
134
None => FieldsShape :: Arbitrary {
0 commit comments