Lines Matching refs:TokenTree
3 use proc_macro::{Delimiter, Group, Ident, Spacing, Span, TokenTree};
5 fn concat(tokens: &[TokenTree], group_span: Span) -> TokenTree { in concat() argument
12 Some(TokenTree::Literal(lit)) => segments.push((lit.to_string(), lit.span())), in concat()
13 Some(TokenTree::Ident(ident)) => { in concat()
20 Some(TokenTree::Punct(p)) if p.as_char() == ':' => { in concat()
21 let Some(TokenTree::Ident(ident)) = tokens.next() else { in concat()
46 TokenTree::Ident(Ident::new(&pasted, span.unwrap_or(group_span))) in concat()
49 pub(crate) fn expand(tokens: &mut Vec<TokenTree>) { in expand() argument
51 if let TokenTree::Group(group) = token { in expand()
58 && matches!(&stream[0], TokenTree::Punct(p) if p.as_char() == '<') in expand()
59 && matches!(&stream[stream.len() - 1], TokenTree::Punct(p) if p.as_char() == '>') in expand()
68 *token = TokenTree::Group(group); in expand()
78 (TokenTree::Punct(a), TokenTree::Punct(b)) in expand()
82 TokenTree::Group(group) if group.delimiter() == Delimiter::None => { in expand()
89 TokenTree::Group(group) if group.delimiter() == Delimiter::None => { in expand()