difftreelog
fix check enum fields
in: master
2 files changed
crates/evm-coder/procedural/src/abi_derive/derive_enum.rsdiffbeforeafterboth143 )143 )144}144}145145146pub fn check_and_count_options(de: &syn::DataEnum) -> syn::Result<usize> {146pub fn check_enum_fields(de: &syn::DataEnum) -> syn::Result<()> {147 let mut count = 0;148 for v in de.variants.iter() {147 for v in de.variants.iter() {149 if !v.fields.is_empty() {148 if !v.fields.is_empty() {150 return Err(syn::Error::new(149 return Err(syn::Error::new(156 v.ident.span(),155 v.ident.span(),157 "Enumeration options should not have an explicit specified value",156 "Enumeration options should not have an explicit specified value",158 ));157 ));159 } else {158 }160 count += 1;161 }162 }159 }163160164 Ok(count)161 Ok(())165}162}166163167pub fn check_repr_u8(name: &syn::Ident, attrs: &[syn::Attribute]) -> syn::Result<()> {164pub fn check_repr_u8(name: &syn::Ident, attrs: &[syn::Attribute]) -> syn::Result<()> {crates/evm-coder/procedural/src/abi_derive/mod.rsdiffbeforeafterboth70) -> syn::Result<proc_macro2::TokenStream> {70) -> syn::Result<proc_macro2::TokenStream> {71 let name = &ast.ident;71 let name = &ast.ident;72 check_repr_u8(name, &ast.attrs)?;72 check_repr_u8(name, &ast.attrs)?;73 check_enum_fields(de)?;73 let docs = extract_docs(&ast.attrs)?;74 let docs = extract_docs(&ast.attrs)?;74 let enum_options = de.variants.iter();75 let enum_options = de.variants.iter();7576