INNER CODE UNIT · Rust
attr_add_to_fn_beginning
intellij-rust/intellij-rust · testData/test-proc-macros/src/lib.rs:166
pub fn attr_add_to_fn_beginning(attr: TokenStream, item: TokenStream) -> TokenStream {
item.into_iter().map(|tt| {
match tt {
TokenTree::Group(g) => {
if g.delimiter() == Delimiter::Brace {
let mut dg = Group::new(
g.delimiter(),
attr.clone().into_iter().chain(g.stream().into_iter()).collect()
);
dg.set_span(g.span());
TokenTree::Group(dg)
} else {
TokenTree::Group(g)
}
}
TokenTree::Ident(..) => tt,
TokenTree::Punct(..) | TokenTree::Literal(..) => tt,
}