difftreelog
misk: Add more checks for enum
in: master
8 files changed
crates/evm-coder/procedural/src/abi_derive.rsdiffbeforeafterboth58 })58 })59 }59 }60 syn::Data::Enum(de) => {60 syn::Data::Enum(de) => {61 let _ = check_repr_u8(name, &ast.attrs)?;61 check_repr_u8(name, &ast.attrs)?;626263 // dbg!(de);63 dbg!(&de);64 for f in de.variants.iter().filter_map(|v| {65 if !v.fields.is_empty() {66 Some(Err(syn::Error::new(67 v.ident.span(),68 "Enumeration parameters should not have fields",69 )))70 } else if v.discriminant.is_some() {71 Some(Err(syn::Error::new(72 v.ident.span(),73 "Enumeration options should not have an explicit specified value",74 )))75 } else {76 None77 }78 }) {79 f?;80 }64 Ok(quote!())81 Ok(quote!())65 }82 }66 syn::Data::Union(_) => Err(syn::Error::new(name.span(), "Unions not supported")),83 syn::Data::Union(_) => Err(syn::Error::new(name.span(), "Unions not supported")),crates/evm-coder/tests/abi_derive_generation.rsdiffbeforeafterboth5 #[test]5 #[test]6 fn empty_struct() {6 fn empty_struct() {7 let t = trybuild::TestCases::new();7 let t = trybuild::TestCases::new();8 t.compile_fail("tests/build_failed/abi_derive_generation.rs");8 t.compile_fail("tests/build_failed/abi_derive_struct_generation.rs");9 }9 }101011 #[derive(AbiCoder, PartialEq, Debug)]11 #[derive(AbiCoder, PartialEq, Debug)]744 enum Color {744 enum Color {745 Red,745 Red,746 Green,746 Green,747 Blue = 255,747 Blue,748 }748 }749749750 #[test]750 #[test]751 fn empty() {}751 fn empty() {}752753 #[test]754 fn bad_enums() {755 let t = trybuild::TestCases::new();756 t.compile_fail("tests/build_failed/abi_derive_enum_generation.rs");757 }752}758}753759crates/evm-coder/tests/build_failed/abi_derive_enum_generation.rsdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_enum_generation.stderrdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_generation.rsdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_generation.stderrdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_struct_generation.rsdiffbeforeafterbothno changes
crates/evm-coder/tests/build_failed/abi_derive_struct_generation.stderrdiffbeforeafterbothno changes