diff --git a/serde_derive/src/try.rs b/serde_derive/src/try.rs index d15d503e..54967ebf 100644 --- a/serde_derive/src/try.rs +++ b/serde_derive/src/try.rs @@ -1,4 +1,4 @@ -use proc_macro2::{Punct, Spacing, TokenStream}; +use proc_macro2::TokenStream; use quote::quote; // None of our generated code requires the `From::from` error conversion @@ -6,14 +6,11 @@ use quote::quote; // we see a significant improvement in type checking and borrow checking time of // the generated code and a slight improvement in binary size. pub fn replacement() -> TokenStream { - // Cannot pass `$expr` to `quote!` prior to Rust 1.17.0 so interpolate it. - let dollar = Punct::new('$', Spacing::Alone); - quote! { #[allow(unused_macros)] macro_rules! try { - (#dollar __expr:expr) => { - match #dollar __expr { + ($__expr:expr) => { + match $__expr { _serde::__private::Ok(__val) => __val, _serde::__private::Err(__err) => { return _serde::__private::Err(__err);