Skip to content

Commit 4118daa

Browse files
committed
Remove redundant VariantLayout.variants field
It was always set to `Variants::Single`.
1 parent 1c613d1 commit 4118daa

19 files changed

Lines changed: 11 additions & 258 deletions

compiler/rustc_abi/src/layout.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -651,10 +651,9 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
651651
let mut unadjusted_abi_align = align;
652652

653653
let mut variant_layouts = variants
654-
.iter_enumerated()
655-
.map(|(j, v)| {
656-
let mut st = self.univariant(v, repr, StructKind::AlwaysSized).ok()?;
657-
st.variants = Variants::Single { index: j };
654+
.iter()
655+
.map(|v| {
656+
let st = self.univariant(v, repr, StructKind::AlwaysSized).ok()?;
658657

659658
align = align.max(st.align.abi);
660659
max_repr_align = max_repr_align.max(st.max_repr_align);
@@ -879,14 +878,13 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
879878

880879
// Create the set of structs that represent each variant.
881880
let mut layout_variants = variants
882-
.iter_enumerated()
883-
.map(|(i, field_layouts)| {
884-
let mut st = self.univariant(
881+
.iter()
882+
.map(|field_layouts| {
883+
let st = self.univariant(
885884
field_layouts,
886885
repr,
887886
StructKind::Prefixed(min_ity.size(), prefix_align),
888887
)?;
889-
st.variants = Variants::Single { index: i };
890888
// Find the first field we can't move later
891889
// to make room for a larger discriminant.
892890
for field_idx in st.fields.index_by_increasing_offset() {

compiler/rustc_abi/src/layout/coroutine.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ pub(super) fn layout<
230230
&ReprOptions::default(),
231231
StructKind::Prefixed(prefix_size, prefix_align.abi),
232232
)?;
233-
variant.variants = Variants::Single { index };
234233

235234
let FieldsShape::Arbitrary { offsets, in_memory_order } = variant.fields else {
236235
unreachable!();

compiler/rustc_abi/src/layout/simple.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
156156

157157
Self {
158158
fields: layout.fields.clone(),
159-
variants: layout.variants.clone(),
159+
variants: Variants::Single { index },
160160
backend_repr: layout.backend_repr,
161161
largest_niche: layout.largest_niche,
162162
uninhabited: layout.uninhabited,

compiler/rustc_abi/src/lib.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1974,7 +1974,7 @@ pub enum Variants<FieldIdx: Idx, VariantIdx: Idx> {
19741974
tag: Scalar,
19751975
tag_encoding: TagEncoding<VariantIdx>,
19761976
tag_field: FieldIdx,
1977-
variants: IndexVec<VariantIdx, VariantLayout<FieldIdx, VariantIdx>>,
1977+
variants: IndexVec<VariantIdx, VariantLayout<FieldIdx>>,
19781978
},
19791979
}
19801980

@@ -2343,29 +2343,27 @@ pub enum AbiFromStrErr {
23432343
// NOTE: This struct is generic over the FieldIdx and VariantIdx for rust-analyzer usage.
23442344
#[derive(PartialEq, Eq, Hash, Clone, Debug)]
23452345
#[cfg_attr(feature = "nightly", derive(HashStable_Generic))]
2346-
pub struct VariantLayout<FieldIdx: Idx, VariantIdx: Idx> {
2346+
pub struct VariantLayout<FieldIdx: Idx> {
23472347
pub size: Size,
23482348
pub align: AbiAlign,
23492349
pub backend_repr: BackendRepr,
23502350
pub fields: FieldsShape<FieldIdx>,
23512351
largest_niche: Option<Niche>,
23522352
uninhabited: bool,
2353-
pub variants: Variants<FieldIdx, VariantIdx>,
23542353
max_repr_align: Option<Align>,
23552354
unadjusted_abi_align: Align,
23562355
randomization_seed: Hash64,
23572356
}
23582357

2359-
impl<FieldIdx: Idx, VariantIdx: Idx> VariantLayout<FieldIdx, VariantIdx> {
2360-
pub fn from_layout(layout: LayoutData<FieldIdx, VariantIdx>) -> Self {
2358+
impl<FieldIdx: Idx> VariantLayout<FieldIdx> {
2359+
pub fn from_layout(layout: LayoutData<FieldIdx, impl Idx>) -> Self {
23612360
Self {
23622361
size: layout.size,
23632362
align: layout.align,
23642363
backend_repr: layout.backend_repr,
23652364
fields: layout.fields,
23662365
largest_niche: layout.largest_niche,
23672366
uninhabited: layout.uninhabited,
2368-
variants: layout.variants,
23692367
max_repr_align: layout.max_repr_align,
23702368
unadjusted_abi_align: layout.unadjusted_abi_align,
23712369
randomization_seed: layout.randomization_seed,

compiler/rustc_ty_utils/src/layout/invariant.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,6 @@ pub(super) fn layout_sanity_check<'tcx>(cx: &LayoutCx<'tcx>, layout: &TyAndLayou
302302
}
303303
}
304304
for variant in variants.iter() {
305-
// No nested "multiple".
306-
assert_matches!(variant.variants, Variants::Single { .. });
307305
// Variants should have the same or a smaller size as the full thing,
308306
// and same for alignment.
309307
if variant.size > layout.size {

tests/ui/enum-discriminant/wrapping_niche.stderr

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
5656
},
5757
largest_niche: None,
5858
uninhabited: false,
59-
variants: Single {
60-
index: 0,
61-
},
6259
max_repr_align: None,
6360
unadjusted_abi_align: Align(2 bytes),
6461
randomization_seed: 9885373149222004003,
@@ -77,9 +74,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
7774
},
7875
largest_niche: None,
7976
uninhabited: false,
80-
variants: Single {
81-
index: 1,
82-
},
8377
max_repr_align: None,
8478
unadjusted_abi_align: Align(2 bytes),
8579
randomization_seed: 9885373149222004003,
@@ -98,9 +92,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
9892
},
9993
largest_niche: None,
10094
uninhabited: false,
101-
variants: Single {
102-
index: 2,
103-
},
10495
max_repr_align: None,
10596
unadjusted_abi_align: Align(2 bytes),
10697
randomization_seed: 9885373149222004003,
@@ -174,9 +165,6 @@ error: layout_of(SignedAroundZero) = Layout {
174165
},
175166
largest_niche: None,
176167
uninhabited: false,
177-
variants: Single {
178-
index: 0,
179-
},
180168
max_repr_align: None,
181169
unadjusted_abi_align: Align(2 bytes),
182170
randomization_seed: 2684536712112553499,
@@ -195,9 +183,6 @@ error: layout_of(SignedAroundZero) = Layout {
195183
},
196184
largest_niche: None,
197185
uninhabited: false,
198-
variants: Single {
199-
index: 1,
200-
},
201186
max_repr_align: None,
202187
unadjusted_abi_align: Align(2 bytes),
203188
randomization_seed: 2684536712112553499,
@@ -216,9 +201,6 @@ error: layout_of(SignedAroundZero) = Layout {
216201
},
217202
largest_niche: None,
218203
uninhabited: false,
219-
variants: Single {
220-
index: 2,
221-
},
222204
max_repr_align: None,
223205
unadjusted_abi_align: Align(2 bytes),
224206
randomization_seed: 2684536712112553499,

tests/ui/layout/debug.stderr

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,6 @@ error: layout_of(E) = Layout {
7272
},
7373
largest_niche: None,
7474
uninhabited: false,
75-
variants: Single {
76-
index: 0,
77-
},
7875
max_repr_align: None,
7976
unadjusted_abi_align: Align(1 bytes),
8077
randomization_seed: $SEED,
@@ -101,9 +98,6 @@ error: layout_of(E) = Layout {
10198
},
10299
largest_niche: None,
103100
uninhabited: true,
104-
variants: Single {
105-
index: 1,
106-
},
107101
max_repr_align: None,
108102
unadjusted_abi_align: Align(4 bytes),
109103
randomization_seed: $SEED,
@@ -273,9 +267,6 @@ error: layout_of(Result<i32, i32>) = Layout {
273267
},
274268
largest_niche: None,
275269
uninhabited: false,
276-
variants: Single {
277-
index: 0,
278-
},
279270
max_repr_align: None,
280271
unadjusted_abi_align: Align(4 bytes),
281272
randomization_seed: $SEED,
@@ -311,9 +302,6 @@ error: layout_of(Result<i32, i32>) = Layout {
311302
},
312303
largest_niche: None,
313304
uninhabited: false,
314-
variants: Single {
315-
index: 1,
316-
},
317305
max_repr_align: None,
318306
unadjusted_abi_align: Align(4 bytes),
319307
randomization_seed: $SEED,
@@ -676,9 +664,6 @@ error: layout_of(Option<bool>) = Layout {
676664
},
677665
largest_niche: None,
678666
uninhabited: false,
679-
variants: Single {
680-
index: 0,
681-
},
682667
max_repr_align: None,
683668
unadjusted_abi_align: Align(1 bytes),
684669
randomization_seed: $SEED,
@@ -716,9 +701,6 @@ error: layout_of(Option<bool>) = Layout {
716701
},
717702
),
718703
uninhabited: false,
719-
variants: Single {
720-
index: 1,
721-
},
722704
max_repr_align: None,
723705
unadjusted_abi_align: Align(1 bytes),
724706
randomization_seed: $SEED,
@@ -796,9 +778,6 @@ error: layout_of(Option<char>) = Layout {
796778
},
797779
largest_niche: None,
798780
uninhabited: false,
799-
variants: Single {
800-
index: 0,
801-
},
802781
max_repr_align: None,
803782
unadjusted_abi_align: Align(1 bytes),
804783
randomization_seed: $SEED,
@@ -836,9 +815,6 @@ error: layout_of(Option<char>) = Layout {
836815
},
837816
),
838817
uninhabited: false,
839-
variants: Single {
840-
index: 1,
841-
},
842818
max_repr_align: None,
843819
unadjusted_abi_align: Align(4 bytes),
844820
randomization_seed: $SEED,

tests/ui/layout/hexagon-enum.stderr

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,6 @@ error: layout_of(A) = Layout {
5656
},
5757
largest_niche: None,
5858
uninhabited: false,
59-
variants: Single {
60-
index: 0,
61-
},
6259
max_repr_align: None,
6360
unadjusted_abi_align: Align(1 bytes),
6461
randomization_seed: $SEED,
@@ -132,9 +129,6 @@ error: layout_of(B) = Layout {
132129
},
133130
largest_niche: None,
134131
uninhabited: false,
135-
variants: Single {
136-
index: 0,
137-
},
138132
max_repr_align: None,
139133
unadjusted_abi_align: Align(1 bytes),
140134
randomization_seed: $SEED,
@@ -208,9 +202,6 @@ error: layout_of(C) = Layout {
208202
},
209203
largest_niche: None,
210204
uninhabited: false,
211-
variants: Single {
212-
index: 0,
213-
},
214205
max_repr_align: None,
215206
unadjusted_abi_align: Align(2 bytes),
216207
randomization_seed: $SEED,
@@ -284,9 +275,6 @@ error: layout_of(P) = Layout {
284275
},
285276
largest_niche: None,
286277
uninhabited: false,
287-
variants: Single {
288-
index: 0,
289-
},
290278
max_repr_align: None,
291279
unadjusted_abi_align: Align(4 bytes),
292280
randomization_seed: $SEED,
@@ -360,9 +348,6 @@ error: layout_of(T) = Layout {
360348
},
361349
largest_niche: None,
362350
uninhabited: false,
363-
variants: Single {
364-
index: 0,
365-
},
366351
max_repr_align: None,
367352
unadjusted_abi_align: Align(4 bytes),
368353
randomization_seed: $SEED,

0 commit comments

Comments
 (0)