git.delta.rocks / unique-network / refs/commits / 11dcf7d2998d

difftreelog

misk: Add more checks for enum

Trubnikov Sergey2022-11-23parent: #bcfbebc.patch.diff
in: master

8 files changed

modifiedcrates/evm-coder/procedural/src/abi_derive.rsdiffbeforeafterboth
58 })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)?;
6262
63 // 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 None
77 }
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")),
modifiedcrates/evm-coder/tests/abi_derive_generation.rsdiffbeforeafterboth
5 #[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 }
1010
11 #[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 }
749749
750 #[test]750 #[test]
751 fn empty() {}751 fn empty() {}
752
753 #[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}
753759
addedcrates/evm-coder/tests/build_failed/abi_derive_enum_generation.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/tests/build_failed/abi_derive_enum_generation.stderrdiffbeforeafterboth

no changes

deletedcrates/evm-coder/tests/build_failed/abi_derive_generation.rsdiffbeforeafterboth

no changes

deletedcrates/evm-coder/tests/build_failed/abi_derive_generation.stderrdiffbeforeafterboth

no changes

addedcrates/evm-coder/tests/build_failed/abi_derive_struct_generation.rsdiffbeforeafterboth

no changes

addedcrates/evm-coder/tests/build_failed/abi_derive_struct_generation.stderrdiffbeforeafterboth

no changes