diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-11-15 07:37:10 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-11-20 12:36:30 +0000 |
| commit | e97686d048141d8a514337531f72f9471bc7c424 (patch) | |
| tree | ab28bcc9e28be5186cf898f7bfade44fc4e500cc /src/libsyntax/parse | |
| parent | 4b9b0d3474ec64133fe797d8fcf8a03c803bac8a (diff) | |
| download | rust-e97686d048141d8a514337531f72f9471bc7c424.tar.gz rust-e97686d048141d8a514337531f72f9471bc7c424.zip | |
Move `MetaItemKind`'s `Name` to a field of `MetaItem`.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/attr.rs | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/src/libsyntax/parse/attr.rs b/src/libsyntax/parse/attr.rs index c72c4646a23..f6405807a25 100644 --- a/src/libsyntax/parse/attr.rs +++ b/src/libsyntax/parse/attr.rs @@ -227,23 +227,15 @@ impl<'a> Parser<'a> { let lo = self.span.lo; let ident = self.parse_ident()?; - match self.token { - token::Eq => { - self.bump(); - let lit = self.parse_unsuffixed_lit()?; - let hi = self.prev_span.hi; - Ok(P(spanned(lo, hi, ast::MetaItemKind::NameValue(ident.name, lit)))) - } - token::OpenDelim(token::Paren) => { - let inner_items = self.parse_meta_seq()?; - let hi = self.prev_span.hi; - Ok(P(spanned(lo, hi, ast::MetaItemKind::List(ident.name, inner_items)))) - } - _ => { - let hi = self.prev_span.hi; - Ok(P(spanned(lo, hi, ast::MetaItemKind::Word(ident.name)))) - } - } + let node = if self.eat(&token::Eq) { + ast::MetaItemKind::NameValue(self.parse_unsuffixed_lit()?) + } else if self.token == token::OpenDelim(token::Paren) { + ast::MetaItemKind::List(self.parse_meta_seq()?) + } else { + ast::MetaItemKind::Word + }; + let hi = self.prev_span.hi; + Ok(P(ast::MetaItem { name: ident.name, node: node, span: mk_sp(lo, hi) })) } /// matches meta_item_inner : (meta_item | UNSUFFIXED_LIT) ; |
