INNER CODE UNIT · Rust
attr_as_is_discard_punct_spans
intellij-rust/intellij-rust · testData/test-proc-macros/src/lib.rs:188
pub fn attr_as_is_discard_punct_spans(_attr: TokenStream, item: TokenStream) -> TokenStream {
discard_punct_spans_stream(item)
}
fn discard_punct_spans_stream(ts: TokenStream) -> TokenStream {
ts.into_iter().map(discard_punct_spans_tree).collect()
}
fn discard_punct_spans_tree(tt: TokenTree) -> TokenTree {
match tt {
TokenTree::Group(g) => {
let dg = Group::new(g.delimiter(), discard_punct_spans_stream(g.stream()));
TokenTree::Group(dg)
}
TokenTree::Punct(p) => {
TokenTree::Punct(Punct::new(p.as_char(), p.spacing()))
}
TokenTree::Ident(..) | TokenTree::Literal(..) => tt,