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