@@ -43,7 +43,7 @@ pub trait LayoutCalculator {
4343 . max_by_key ( |niche| niche. available ( dl) ) ;
4444
4545 LayoutS {
46- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
46+ variants : Variants :: Single { index : FIRST_VARIANT } ,
4747 fields : FieldsShape :: Arbitrary {
4848 offsets : vec ! [ Size :: ZERO , b_offset] ,
4949 memory_index : vec ! [ 0 , 1 ] ,
@@ -264,7 +264,7 @@ pub trait LayoutCalculator {
264264 abi = Abi :: Uninhabited ;
265265 }
266266 Some ( LayoutS {
267- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
267+ variants : Variants :: Single { index : FIRST_VARIANT } ,
268268 fields : FieldsShape :: Arbitrary { offsets, memory_index } ,
269269 abi,
270270 largest_niche,
@@ -277,7 +277,7 @@ pub trait LayoutCalculator {
277277 let dl = self . current_data_layout ( ) ;
278278 let dl = dl. borrow ( ) ;
279279 LayoutS {
280- variants : Variants :: Single { index : VariantIdx :: new ( 0 ) } ,
280+ variants : Variants :: Single { index : FIRST_VARIANT } ,
281281 fields : FieldsShape :: Primitive ,
282282 abi : Abi :: Uninhabited ,
283283 largest_niche : None ,
@@ -331,7 +331,7 @@ pub trait LayoutCalculator {
331331 }
332332 // If it's a struct, still compute a layout so that we can still compute the
333333 // field offsets.
334- None => VariantIdx :: new ( 0 ) ,
334+ None => FIRST_VARIANT ,
335335 } ;
336336
337337 let is_struct = !is_enum ||
@@ -467,7 +467,7 @@ pub trait LayoutCalculator {
467467 . max_by_key ( |( _i, layout) | layout. size . bytes ( ) )
468468 . map ( |( i, _layout) | i) ?;
469469
470- let all_indices = ( 0 ..= variants. len ( ) - 1 ) . map ( VariantIdx :: new ) ;
470+ let all_indices = variants. indices ( ) ;
471471 let needs_disc =
472472 |index : VariantIdx | index != largest_variant_index && !absent ( & variants[ index] ) ;
473473 let niche_variants = all_indices. clone ( ) . find ( |v| needs_disc ( * v) ) . unwrap ( ) . index ( )
@@ -896,8 +896,8 @@ pub trait LayoutCalculator {
896896 let optimize = !repr. inhibit_union_abi_opt ( ) ;
897897 let mut size = Size :: ZERO ;
898898 let mut abi = Abi :: Aggregate { sized : true } ;
899- let index = VariantIdx :: new ( 0 ) ;
900- for field in & variants [ index ] {
899+ let only_variant = & variants [ FIRST_VARIANT ] ;
900+ for field in only_variant {
901901 assert ! ( field. 0 . is_sized( ) ) ;
902902 align = align. max ( field. align ( ) ) ;
903903
@@ -930,8 +930,8 @@ pub trait LayoutCalculator {
930930 }
931931
932932 Some ( LayoutS {
933- variants : Variants :: Single { index } ,
934- fields : FieldsShape :: Union ( NonZeroUsize :: new ( variants [ index ] . len ( ) ) ?) ,
933+ variants : Variants :: Single { index : FIRST_VARIANT } ,
934+ fields : FieldsShape :: Union ( NonZeroUsize :: new ( only_variant . len ( ) ) ?) ,
935935 abi,
936936 largest_niche : None ,
937937 align,
0 commit comments