diff options
| author | Seiichi Uchida <seuchida@gmail.com> | 2017-08-17 21:58:01 +0900 |
|---|---|---|
| committer | Seiichi Uchida <seuchida@gmail.com> | 2017-08-17 21:58:01 +0900 |
| commit | ceb2c240a6722f2b2ba3a3612af21d943c18fd30 (patch) | |
| tree | 335be79594730f8e31451b795c484041bb601861 /src/libsyntax | |
| parent | ea222160d0384a0b231624e80301397874d6b21c (diff) | |
| download | rust-ceb2c240a6722f2b2ba3a3612af21d943c18fd30.tar.gz rust-ceb2c240a6722f2b2ba3a3612af21d943c18fd30.zip | |
Include the closing paren to the span of ast::NestedMetaItem
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/attr.rs | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index bca662c3363..ca87c807103 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -1064,26 +1064,21 @@ impl MetaItem { }, _ => return None, }; + let list_closing_paren_pos = tokens.peek().map(|tt| tt.span().hi); let node = match MetaItemKind::from_tokens(tokens) { Some(node) => node, _ => return None, }; - if let Some(last_span) = node.last_span() { - span.hi = last_span.hi; - } + span.hi = match node { + MetaItemKind::NameValue(ref lit) => lit.span.hi, + MetaItemKind::List(..) => list_closing_paren_pos.unwrap_or(span.hi), + _ => span.hi, + }; Some(MetaItem { name: name, span: span, node: node }) } } impl MetaItemKind { - fn last_span(&self) -> Option<Span> { - match *self { - MetaItemKind::Word => None, - MetaItemKind::List(ref list) => list.last().map(NestedMetaItem::span), - MetaItemKind::NameValue(ref lit) => Some(lit.span), - } - } - pub fn tokens(&self, span: Span) -> TokenStream { match *self { MetaItemKind::Word => TokenStream::empty(), |
