]> git.proxmox.com Git - rustc.git/blob - vendor/serde_derive/src/internals/respan.rs
New upstream version 1.51.0+dfsg1
[rustc.git] / vendor / serde_derive / src / internals / respan.rs
1 use proc_macro2::{Group, Span, TokenStream, TokenTree};
2
3 pub(crate) fn respan(stream: TokenStream, span: Span) -> TokenStream {
4 stream
5 .into_iter()
6 .map(|token| respan_token(token, span))
7 .collect()
8 }
9
10 fn respan_token(mut token: TokenTree, span: Span) -> TokenTree {
11 if let TokenTree::Group(g) = &mut token {
12 *g = Group::new(g.delimiter(), respan(g.stream(), span));
13 }
14 token.set_span(span);
15 token
16 }