Closed CAD97 closed 4 years ago
Without patching proc-macro2, syn::parse_str::<syn::Ident> accepts raw identifiers:
syn::parse_str::<syn::Ident>
[src\main.rs:2] syn::parse_str::<syn::Ident>("r#raw") = Ok(Ident(r#raw))
Hooking the same test up to run in watt, however:
error: proc-macro derive panicked --> demo\caller\src\main.rs:3:10 | 3 | #[derive(Demo)] | ^^^^ | = help: message: panicked at '"r#raw" is not a valid Ident', D:\repos\dtolnay\watt\proc-macro\src\lib.rs:445:13
Without patching proc-macro2,
syn::parse_str::<syn::Ident>
accepts raw identifiers:The simplest possible test:
```rust pub fn main() { dbg!(syn::parse_str::Hooking the same test up to run in watt, however:
The demo derive, patched:
```rust #[no_mangle] pub extern "C" fn demo(input: TokenStream) -> TokenStream { let input: DeriveInput = match syn::parse2(input) { Ok(input) => input, Err(err) => return err.to_compile_error(), }; let ident = input.ident; let message = format!("{:?}", syn::parse_str::