| 1 | use proc_macro2::{Group, Span, TokenStream, TokenTree}; |
|---|---|
| 2 | |
| 3 | pub(crate) fn respan(stream: TokenStream, span: Span) -> TokenStream { |
| 4 | streamimpl Iterator |
| 5 | .into_iter() |
| 6 | .map(|token: TokenTree| 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 Group) = &mut token { |
| 12 | *g = Group::new(g.delimiter(), stream:respan(g.stream(), span)); |
| 13 | } |
| 14 | token.set_span(span); |
| 15 | token |
| 16 | } |
| 17 |
