xref: /third_party/rust/crates/serde/serde_derive_internals/src/respan.rs
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/rust/crates/serde/serde_derive_internals/src/
17e2e9c0cSopenharmony_ciuse proc_macro2::{Group, Span, TokenStream, TokenTree};
27e2e9c0cSopenharmony_ci
37e2e9c0cSopenharmony_cipub(crate) fn respan(stream: TokenStream, span: Span) -> TokenStream {
47e2e9c0cSopenharmony_ci    stream
57e2e9c0cSopenharmony_ci        .into_iter()
67e2e9c0cSopenharmony_ci        .map(|token| respan_token(token, span))
77e2e9c0cSopenharmony_ci        .collect()
87e2e9c0cSopenharmony_ci}
97e2e9c0cSopenharmony_ci
107e2e9c0cSopenharmony_cifn respan_token(mut token: TokenTree, span: Span) -> TokenTree {
117e2e9c0cSopenharmony_ci    if let TokenTree::Group(g) = &mut token {
127e2e9c0cSopenharmony_ci        *g = Group::new(g.delimiter(), respan(g.stream(), span));
137e2e9c0cSopenharmony_ci    }
147e2e9c0cSopenharmony_ci    token.set_span(span);
157e2e9c0cSopenharmony_ci    token
167e2e9c0cSopenharmony_ci}
17

Indexes created Thu Nov 07 10:32:03 CST 2024