I have made a procedural macro which implements a trait with some functions for a enums. This the whole code: ```rust #[proc_macro_derive(StateMachine, attributes(state_transitions))] pub fn fxsm(input: TokenStream) -> TokenStream { // Construct a string representation of the type definition let s = input.to_string(); // Parse the string representation let ast = syn::parse_derive_input(&s).unwrap(); // Build the impl let gen = impl_fsm(&ast); // Return the generated impl gen.parse().unwrap() } fn impl_fsm(ast: &syn::DeriveInput) -> Tokens { if let syn::Body::Enum(ref variants) = ast.body { if let Some(ref a) = ast.attrs.iter().find(|a| a.name() == "derive") { if let syn::MetaItem::List(_, ref nested) = a.value { if derives(nested, "Copy") { return gen_for_copyable(&ast.ident, &variants, &ast.generics); } else if derives(nested, "Clone") { return gen_for_clonable(&ast.ident, &variants, &ast.generics); } else { panic!("Unable to produce State Machine code on a enum which does not drive Copy nor Clone traits."); } } else { panic!("Unable to produce State Machine code on a enum which does not drive Copy nor Clone traits."); } } else { panic!("How were you able to call me without derive!?!?"); } } else { panic!("State Machine must be derived on a enum."); } } ``` This code worked perfectly like 2 weeks ago but now I have tried to compile it and it can't find any attribute on this struct! As you can see, I try to see what derives does the enum have but now this list is empty! What happened? Original issue was posted [here](https://github.com/dtolnay/syn/issues/108) @dtolnay told that is was changed [here](https://github.com/rust-lang/rust/pull/39572) So how do I fix this?