Change tag_field to FieldIdx in Variants::Multiple
It was already available as a generic parameter anyway, and it's not like we'll ever put a tag in the 5-billionth field.
This commit is contained in:
@@ -934,7 +934,7 @@ where
|
||||
.unwrap(),
|
||||
),
|
||||
Variants::Multiple { tag, tag_field, .. } => {
|
||||
if i == tag_field {
|
||||
if FieldIdx::from_usize(i) == tag_field {
|
||||
return TyMaybeWithLayout::TyAndLayout(tag_layout(tag));
|
||||
}
|
||||
TyMaybeWithLayout::Ty(args.as_coroutine().prefix_tys()[i])
|
||||
@@ -1060,8 +1060,10 @@ where
|
||||
tag_field,
|
||||
variants,
|
||||
..
|
||||
} if variants.len() == 2 && this.fields.offset(*tag_field) == offset => {
|
||||
let tagged_variant = if untagged_variant.as_u32() == 0 {
|
||||
} if variants.len() == 2
|
||||
&& this.fields.offset(tag_field.as_usize()) == offset =>
|
||||
{
|
||||
let tagged_variant = if *untagged_variant == VariantIdx::ZERO {
|
||||
VariantIdx::from_u32(1)
|
||||
} else {
|
||||
VariantIdx::from_u32(0)
|
||||
|
||||
Reference in New Issue
Block a user