Skip to content

Commit c7a66c4

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

19 files changed

Lines changed: 11 additions & 246 deletions

compiler/rustc_abi/src/layout.rs

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

590590
let mut variant_layouts = variants
591-
.iter_enumerated()
592-
.map(|(j, v)| {
593-
let mut st = self.univariant(v, repr, StructKind::AlwaysSized).ok()?;
594-
st.variants = Variants::Single { index: j };
591+
.iter()
592+
.map(|v| {
593+
let st = self.univariant(v, repr, StructKind::AlwaysSized).ok()?;
595594

596595
align = align.max(st.align.abi);
597596
max_repr_align = max_repr_align.max(st.max_repr_align);
@@ -816,14 +815,13 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
816815

817816
// Create the set of structs that represent each variant.
818817
let mut layout_variants = variants
819-
.iter_enumerated()
820-
.map(|(i, field_layouts)| {
821-
let mut st = self.univariant(
818+
.iter()
819+
.map(|field_layouts| {
820+
let st = self.univariant(
822821
field_layouts,
823822
repr,
824823
StructKind::Prefixed(min_ity.size(), prefix_align),
825824
)?;
826-
st.variants = Variants::Single { index: i };
827825
// Find the first field we can't move later
828826
// to make room for a larger discriminant.
829827
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
@@ -1875,7 +1875,7 @@ pub enum Variants<FieldIdx: Idx, VariantIdx: Idx> {
18751875
tag: Scalar,
18761876
tag_encoding: TagEncoding<VariantIdx>,
18771877
tag_field: FieldIdx,
1878-
variants: IndexVec<VariantIdx, VariantLayout<FieldIdx, VariantIdx>>,
1878+
variants: IndexVec<VariantIdx, VariantLayout<FieldIdx>>,
18791879
},
18801880
}
18811881

@@ -2234,29 +2234,27 @@ pub enum AbiFromStrErr {
22342234
// NOTE: This struct is generic over the FieldIdx and VariantIdx for rust-analyzer usage.
22352235
#[derive(PartialEq, Eq, Hash, Clone, Debug)]
22362236
#[cfg_attr(feature = "nightly", derive(HashStable_Generic))]
2237-
pub struct VariantLayout<FieldIdx: Idx, VariantIdx: Idx> {
2237+
pub struct VariantLayout<FieldIdx: Idx> {
22382238
pub size: Size,
22392239
pub align: AbiAlign,
22402240
pub backend_repr: BackendRepr,
22412241
pub fields: FieldsShape<FieldIdx>,
22422242
largest_niche: Option<Niche>,
22432243
uninhabited: bool,
2244-
pub variants: Variants<FieldIdx, VariantIdx>,
22452244
max_repr_align: Option<Align>,
22462245
unadjusted_abi_align: Align,
22472246
randomization_seed: Hash64,
22482247
}
22492248

2250-
impl<FieldIdx: Idx, VariantIdx: Idx> VariantLayout<FieldIdx, VariantIdx> {
2251-
pub fn from_layout(layout: LayoutData<FieldIdx, VariantIdx>) -> Self {
2249+
impl<FieldIdx: Idx> VariantLayout<FieldIdx> {
2250+
pub fn from_layout(layout: LayoutData<FieldIdx, impl Idx>) -> Self {
22522251
Self {
22532252
size: layout.size,
22542253
align: layout.align,
22552254
backend_repr: layout.backend_repr,
22562255
fields: layout.fields,
22572256
largest_niche: layout.largest_niche,
22582257
uninhabited: layout.uninhabited,
2259-
variants: layout.variants,
22602258
max_repr_align: layout.max_repr_align,
22612259
unadjusted_abi_align: layout.unadjusted_abi_align,
22622260
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
@@ -293,8 +293,6 @@ pub(super) fn layout_sanity_check<'tcx>(cx: &LayoutCx<'tcx>, layout: &TyAndLayou
293293
}
294294
}
295295
for variant in variants.iter() {
296-
// No nested "multiple".
297-
assert_matches!(variant.variants, Variants::Single { .. });
298296
// Variants should have the same or a smaller size as the full thing,
299297
// and same for alignment.
300298
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 & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,6 @@ error: layout_of(E) = 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,
@@ -85,9 +82,6 @@ error: layout_of(E) = Layout {
8582
},
8683
largest_niche: None,
8784
uninhabited: true,
88-
variants: Single {
89-
index: 1,
90-
},
9185
max_repr_align: None,
9286
unadjusted_abi_align: Align(4 bytes),
9387
randomization_seed: $SEED,
@@ -257,9 +251,6 @@ error: layout_of(Result<i32, i32>) = Layout {
257251
},
258252
largest_niche: None,
259253
uninhabited: false,
260-
variants: Single {
261-
index: 0,
262-
},
263254
max_repr_align: None,
264255
unadjusted_abi_align: Align(4 bytes),
265256
randomization_seed: $SEED,
@@ -295,9 +286,6 @@ error: layout_of(Result<i32, i32>) = Layout {
295286
},
296287
largest_niche: None,
297288
uninhabited: false,
298-
variants: Single {
299-
index: 1,
300-
},
301289
max_repr_align: None,
302290
unadjusted_abi_align: Align(4 bytes),
303291
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,

tests/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,6 @@ error: layout_of(MissingPayloadField) = Layout {
7878
},
7979
largest_niche: None,
8080
uninhabited: false,
81-
variants: Single {
82-
index: 0,
83-
},
8481
max_repr_align: None,
8582
unadjusted_abi_align: Align(1 bytes),
8683
randomization_seed: $SEED,
@@ -99,9 +96,6 @@ error: layout_of(MissingPayloadField) = Layout {
9996
},
10097
largest_niche: None,
10198
uninhabited: false,
102-
variants: Single {
103-
index: 1,
104-
},
10599
max_repr_align: None,
106100
unadjusted_abi_align: Align(1 bytes),
107101
randomization_seed: $SEED,
@@ -199,9 +193,6 @@ error: layout_of(CommonPayloadField) = Layout {
199193
},
200194
largest_niche: None,
201195
uninhabited: false,
202-
variants: Single {
203-
index: 0,
204-
},
205196
max_repr_align: None,
206197
unadjusted_abi_align: Align(1 bytes),
207198
randomization_seed: $SEED,
@@ -237,9 +228,6 @@ error: layout_of(CommonPayloadField) = Layout {
237228
},
238229
largest_niche: None,
239230
uninhabited: false,
240-
variants: Single {
241-
index: 1,
242-
},
243231
max_repr_align: None,
244232
unadjusted_abi_align: Align(1 bytes),
245233
randomization_seed: $SEED,
@@ -335,9 +323,6 @@ error: layout_of(CommonPayloadFieldIsMaybeUninit) = Layout {
335323
},
336324
largest_niche: None,
337325
uninhabited: false,
338-
variants: Single {
339-
index: 0,
340-
},
341326
max_repr_align: None,
342327
unadjusted_abi_align: Align(1 bytes),
343328
randomization_seed: $SEED,
@@ -372,9 +357,6 @@ error: layout_of(CommonPayloadFieldIsMaybeUninit) = Layout {
372357
},
373358
largest_niche: None,
374359
uninhabited: false,
375-
variants: Single {
376-
index: 1,
377-
},
378360
max_repr_align: None,
379361
unadjusted_abi_align: Align(1 bytes),
380362
randomization_seed: $SEED,
@@ -486,9 +468,6 @@ error: layout_of(NicheFirst) = Layout {
486468
},
487469
),
488470
uninhabited: false,
489-
variants: Single {
490-
index: 0,
491-
},
492471
max_repr_align: None,
493472
unadjusted_abi_align: Align(1 bytes),
494473
randomization_seed: $SEED,
@@ -507,9 +486,6 @@ error: layout_of(NicheFirst) = Layout {
507486
},
508487
largest_niche: None,
509488
uninhabited: false,
510-
variants: Single {
511-
index: 1,
512-
},
513489
max_repr_align: None,
514490
unadjusted_abi_align: Align(1 bytes),
515491
randomization_seed: $SEED,
@@ -528,9 +504,6 @@ error: layout_of(NicheFirst) = Layout {
528504
},
529505
largest_niche: None,
530506
uninhabited: false,
531-
variants: Single {
532-
index: 2,
533-
},
534507
max_repr_align: None,
535508
unadjusted_abi_align: Align(1 bytes),
536509
randomization_seed: $SEED,
@@ -642,9 +615,6 @@ error: layout_of(NicheSecond) = Layout {
642615
},
643616
),
644617
uninhabited: false,
645-
variants: Single {
646-
index: 0,
647-
},
648618
max_repr_align: None,
649619
unadjusted_abi_align: Align(1 bytes),
650620
randomization_seed: $SEED,
@@ -663,9 +633,6 @@ error: layout_of(NicheSecond) = Layout {
663633
},
664634
largest_niche: None,
665635
uninhabited: false,
666-
variants: Single {
667-
index: 1,
668-
},
669636
max_repr_align: None,
670637
unadjusted_abi_align: Align(1 bytes),
671638
randomization_seed: $SEED,
@@ -684,9 +651,6 @@ error: layout_of(NicheSecond) = Layout {
684651
},
685652
largest_niche: None,
686653
uninhabited: false,
687-
variants: Single {
688-
index: 2,
689-
},
690654
max_repr_align: None,
691655
unadjusted_abi_align: Align(1 bytes),
692656
randomization_seed: $SEED,

0 commit comments

Comments
 (0)