diff --git a/src/derive.rs b/src/derive.rs index 428ab92..fdcd151 100644 --- a/src/derive.rs +++ b/src/derive.rs @@ -29,12 +29,6 @@ fn derive2(input: TokenStream, run: fn(Execution)) -> TokenStream { } fn syn_to_type(input: DeriveInput) -> Type { - let attrs: Vec<_> = input - .attrs - .into_iter() - .map(std::convert::Into::into) - .collect(); - Type(TypeNode::DataStructure { name: Ident::from(input.ident), generics: Generics::syn_to_generics(input.generics), @@ -50,7 +44,7 @@ fn syn_to_type(input: DeriveInput) -> Type { element: Type::syn_to_type(field.ty), }) .collect(), - attrs, + attrs: input.attrs, })), syn::Fields::Unnamed(fields) => Data::Struct(Struct::Tuple(TupleStruct { fields: fields @@ -63,15 +57,15 @@ fn syn_to_type(input: DeriveInput) -> Type { element: Type::syn_to_type(field.ty), }) .collect(), - attrs, + attrs: input.attrs, })), - syn::Fields::Unit => Data::Struct(Struct::Unit(UnitStruct { attrs })), + syn::Fields::Unit => Data::Struct(Struct::Unit(UnitStruct { attrs: input.attrs })), }, syn::Data::Enum(data) => { // FIXME convert enum variants Data::Enum(Enum { variants: Vec::new(), - attrs, + attrs: input.attrs, }) } syn::Data::Union(_) => unimplemented!("union"),