diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-04 20:42:43 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-06 14:03:15 +0300 |
| commit | e0127dbf8135b766a332ce21c4eee48998b59bef (patch) | |
| tree | 4a30906f1c8058e13fd426a56967e7cba9408bf7 /src/libsyntax/attr | |
| parent | a3425edb46dfcc7031068b8bdda868e5a3b16ae1 (diff) | |
| download | rust-e0127dbf8135b766a332ce21c4eee48998b59bef.tar.gz rust-e0127dbf8135b766a332ce21c4eee48998b59bef.zip | |
syntax: Use `Token` in `TokenTree::Token`
Diffstat (limited to 'src/libsyntax/attr')
| -rw-r--r-- | src/libsyntax/attr/mod.rs | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/libsyntax/attr/mod.rs b/src/libsyntax/attr/mod.rs index ade15f024a6..448061395af 100644 --- a/src/libsyntax/attr/mod.rs +++ b/src/libsyntax/attr/mod.rs @@ -20,7 +20,7 @@ use crate::source_map::{BytePos, Spanned, dummy_spanned}; use crate::parse::lexer::comments::{doc_comment_style, strip_doc_comment_decoration}; use crate::parse::parser::Parser; use crate::parse::{self, ParseSess, PResult}; -use crate::parse::token::{self, TokenKind}; +use crate::parse::token::{self, Token, TokenKind}; use crate::ptr::P; use crate::symbol::{sym, Symbol}; use crate::ThinVec; @@ -465,9 +465,9 @@ impl MetaItem { let mod_sep_span = Span::new(last_pos, segment.ident.span.lo(), segment.ident.span.ctxt()); - idents.push(TokenTree::Token(mod_sep_span, token::ModSep).into()); + idents.push(TokenTree::token(mod_sep_span, token::ModSep).into()); } - idents.push(TokenTree::Token(segment.ident.span, + idents.push(TokenTree::token(segment.ident.span, TokenKind::from_ast_ident(segment.ident)).into()); last_pos = segment.ident.span.hi(); } @@ -480,10 +480,10 @@ impl MetaItem { { // FIXME: Share code with `parse_path`. let path = match tokens.next() { - Some(TokenTree::Token(span, token @ token::Ident(..))) | - Some(TokenTree::Token(span, token @ token::ModSep)) => 'arm: { - let mut segments = if let token::Ident(ident, _) = token { - if let Some(TokenTree::Token(_, token::ModSep)) = tokens.peek() { + Some(TokenTree::Token(Token { kind: kind @ token::Ident(..), span })) | + Some(TokenTree::Token(Token { kind: kind @ token::ModSep, span })) => 'arm: { + let mut segments = if let token::Ident(ident, _) = kind { + if let Some(TokenTree::Token(Token { kind: token::ModSep, .. })) = tokens.peek() { tokens.next(); vec![PathSegment::from_ident(ident.with_span_pos(span))] } else { @@ -493,13 +493,12 @@ impl MetaItem { vec![PathSegment::path_root(span)] }; loop { - if let Some(TokenTree::Token(span, - token::Ident(ident, _))) = tokens.next() { + if let Some(TokenTree::Token(Token { kind: token::Ident(ident, _), span })) = tokens.next() { segments.push(PathSegment::from_ident(ident.with_span_pos(span))); } else { return None; } - if let Some(TokenTree::Token(_, token::ModSep)) = tokens.peek() { + if let Some(TokenTree::Token(Token { kind: token::ModSep, .. })) = tokens.peek() { tokens.next(); } else { break; @@ -508,7 +507,7 @@ impl MetaItem { let span = span.with_hi(segments.last().unwrap().ident.span.hi()); Path { span, segments } } - Some(TokenTree::Token(_, token::Interpolated(nt))) => match *nt { + Some(TokenTree::Token(Token { kind: token::Interpolated(nt), .. })) => match *nt { token::Nonterminal::NtIdent(ident, _) => Path::from_ident(ident), token::Nonterminal::NtMeta(ref meta) => return Some(meta.clone()), token::Nonterminal::NtPath(ref path) => path.clone(), @@ -533,7 +532,7 @@ impl MetaItemKind { match *self { MetaItemKind::Word => TokenStream::empty(), MetaItemKind::NameValue(ref lit) => { - let mut vec = vec![TokenTree::Token(span, token::Eq).into()]; + let mut vec = vec![TokenTree::token(span, token::Eq).into()]; lit.tokens().append_to_tree_and_joint_vec(&mut vec); TokenStream::new(vec) } @@ -541,7 +540,7 @@ impl MetaItemKind { let mut tokens = Vec::new(); for (i, item) in list.iter().enumerate() { if i > 0 { - tokens.push(TokenTree::Token(span, token::Comma).into()); + tokens.push(TokenTree::token(span, token::Comma).into()); } item.tokens().append_to_tree_and_joint_vec(&mut tokens); } @@ -558,10 +557,10 @@ impl MetaItemKind { where I: Iterator<Item = TokenTree>, { let delimited = match tokens.peek().cloned() { - Some(TokenTree::Token(_, token::Eq)) => { + Some(TokenTree::Token(token)) if token == token::Eq => { tokens.next(); - return if let Some(TokenTree::Token(span, token)) = tokens.next() { - Lit::from_token(&token, span).ok().map(MetaItemKind::NameValue) + return if let Some(TokenTree::Token(token)) = tokens.next() { + Lit::from_token(&token, token.span).ok().map(MetaItemKind::NameValue) } else { None }; @@ -579,7 +578,7 @@ impl MetaItemKind { let item = NestedMetaItem::from_tokens(&mut tokens)?; result.push(item); match tokens.next() { - None | Some(TokenTree::Token(_, token::Comma)) => {} + None | Some(TokenTree::Token(Token { kind: token::Comma, .. })) => {} _ => return None, } } @@ -605,8 +604,8 @@ impl NestedMetaItem { fn from_tokens<I>(tokens: &mut iter::Peekable<I>) -> Option<NestedMetaItem> where I: Iterator<Item = TokenTree>, { - if let Some(TokenTree::Token(span, token)) = tokens.peek().cloned() { - if let Ok(lit) = Lit::from_token(&token, span) { + if let Some(TokenTree::Token(token)) = tokens.peek().cloned() { + if let Ok(lit) = Lit::from_token(&token, token.span) { tokens.next(); return Some(NestedMetaItem::Literal(lit)); } |
