frozen-abi: Ovf in enum variant count

This commit is contained in:
Trent Nelson 2021-02-16 13:58:33 -07:00 committed by Trent Nelson
parent 567e54aaa3
commit 14985420fd
1 changed files with 6 additions and 2 deletions

View File

@ -256,7 +256,7 @@ pub fn derive_abi_sample(item: TokenStream) -> TokenStream {
fn do_derive_abi_enum_visitor(input: ItemEnum) -> TokenStream {
let type_name = &input.ident;
let mut serialized_variants = quote! {};
let mut variant_count = 0;
let mut variant_count: u64 = 0;
let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl();
for variant in &input.variants {
// Don't digest a variant with serde(skip)
@ -264,7 +264,11 @@ fn do_derive_abi_enum_visitor(input: ItemEnum) -> TokenStream {
continue;
};
let sample_variant = quote_sample_variant(&type_name, &ty_generics, &variant);
variant_count += 1;
variant_count = if let Some(variant_count) = variant_count.checked_add(1) {
variant_count
} else {
break;
};
serialized_variants.extend(quote! {
#sample_variant;
Serialize::serialize(&sample_variant, digester.create_enum_child())?;