diff --git a/precompiled/proc-macro2/src/watt/mod.rs b/precompiled/proc-macro2/src/watt/mod.rs index 833b54c0..bb4f66a9 100644 --- a/precompiled/proc-macro2/src/watt/mod.rs +++ b/precompiled/proc-macro2/src/watt/mod.rs @@ -76,8 +76,13 @@ pub fn load(buf: &mut InputBuffer) -> TokenStream { Kind::Ident => { let len = buf.read_u16(); let repr = buf.read_str(len as usize); + let ident = if let Some(repr) = repr.strip_prefix("r#") { + proc_macro2::Ident::new_raw(repr, proc_macro2::Span::call_site()) + } else { + proc_macro2::Ident::new(repr, proc_macro2::Span::call_site()) + }; trees.push(TokenTree::Ident(Ident { - fallback: proc_macro2::Ident::new(repr, proc_macro2::Span::call_site()), + fallback: ident, span: next_span(), identity: next_ident(), })); @@ -85,8 +90,9 @@ pub fn load(buf: &mut InputBuffer) -> TokenStream { Kind::Punct(spacing) => { let ch = buf.read_u8(); assert!(ch.is_ascii()); + let punct = proc_macro2::Punct::new(ch as char, spacing); trees.push(TokenTree::Punct(Punct { - fallback: proc_macro2::Punct::new(ch as char, spacing), + fallback: punct, span: next_span(), identity: next_punct(), })); @@ -94,8 +100,9 @@ pub fn load(buf: &mut InputBuffer) -> TokenStream { Kind::Literal => { let len = buf.read_u16(); let repr = buf.read_str(len as usize); + let literal = proc_macro2::Literal::from_str(repr).unwrap(); trees.push(TokenTree::Literal(Literal { - fallback: proc_macro2::Literal::from_str(repr).unwrap(), + fallback: literal, span: next_span(), identity: next_literal(), })); diff --git a/precompiled/x86_64-unknown-linux-gnu/src/lib.rs b/precompiled/x86_64-unknown-linux-gnu/src/lib.rs index 0e868801..d50c9c3f 100644 --- a/precompiled/x86_64-unknown-linux-gnu/src/lib.rs +++ b/precompiled/x86_64-unknown-linux-gnu/src/lib.rs @@ -177,7 +177,11 @@ impl TokenMemory { let len = buf.read_u16(); let repr = buf.read_str(len as usize); let span = self.read_span(buf); - let ident = Ident::new(repr, span); + let ident = if let Some(repr) = repr.strip_prefix("r#") { + Ident::new_raw(repr, span) + } else { + Ident::new(repr, span) + }; trees.push(TokenTree::Ident(ident)); } Kind::Punct(spacing) => {