Lines Matching refs:TokenTree
3 use proc_macro::{Delimiter, Group, Ident, Spacing, Span, TokenTree};
5 fn concat_helper(tokens: &[TokenTree]) -> Vec<(String, Span)> { in concat_helper()
12 Some(TokenTree::Literal(lit)) => { in concat_helper()
21 Some(TokenTree::Ident(ident)) => { in concat_helper()
28 Some(TokenTree::Punct(p)) if p.as_char() == ':' => { in concat_helper()
29 let Some(TokenTree::Ident(ident)) = tokens.next() else { in concat_helper()
49 Some(TokenTree::Group(group)) if group.delimiter() == Delimiter::None => { in concat_helper()
50 let tokens = group.stream().into_iter().collect::<Vec<TokenTree>>(); in concat_helper()
60 fn concat(tokens: &[TokenTree], group_span: Span) -> TokenTree { in concat() argument
63 TokenTree::Ident(Ident::new(&pasted, group_span)) in concat()
66 pub(crate) fn expand(tokens: &mut Vec<TokenTree>) { in expand() argument
68 if let TokenTree::Group(group) = token { in expand()
75 && matches!(&stream[0], TokenTree::Punct(p) if p.as_char() == '<') in expand()
76 && matches!(&stream[stream.len() - 1], TokenTree::Punct(p) if p.as_char() == '>') in expand()
85 *token = TokenTree::Group(group); in expand()
95 (TokenTree::Punct(a), TokenTree::Punct(b)) in expand()
99 TokenTree::Group(group) if group.delimiter() == Delimiter::None => { in expand()
106 TokenTree::Group(group) if group.delimiter() == Delimiter::None => { in expand()