--- a/crates/evm-coder/procedural/src/abi_derive/derive_enum.rs +++ b/crates/evm-coder/procedural/src/abi_derive/derive_enum.rs @@ -143,8 +143,7 @@ ) } -pub fn check_and_count_options(de: &syn::DataEnum) -> syn::Result { - let mut count = 0; +pub fn check_enum_fields(de: &syn::DataEnum) -> syn::Result<()> { for v in de.variants.iter() { if !v.fields.is_empty() { return Err(syn::Error::new( @@ -156,12 +155,10 @@ v.ident.span(), "Enumeration options should not have an explicit specified value", )); - } else { - count += 1; } } - Ok(count) + Ok(()) } pub fn check_repr_u8(name: &syn::Ident, attrs: &[syn::Attribute]) -> syn::Result<()> { --- a/crates/evm-coder/procedural/src/abi_derive/mod.rs +++ b/crates/evm-coder/procedural/src/abi_derive/mod.rs @@ -70,6 +70,7 @@ ) -> syn::Result { let name = &ast.ident; check_repr_u8(name, &ast.attrs)?; + check_enum_fields(de)?; let docs = extract_docs(&ast.attrs)?; let enum_options = de.variants.iter();