diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-07-13 21:01:04 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-07-15 12:42:07 +0300 |
| commit | 23c5c1bfe7e3785fa1dcf1d3ff6e6bbaa855f66f (patch) | |
| tree | 5a9132b707ba8bdda8428df4c5cc185db7618934 /src/libsyntax/print | |
| parent | 500b00127b1b5f0b3891c73327e20a972940a715 (diff) | |
| download | rust-23c5c1bfe7e3785fa1dcf1d3ff6e6bbaa855f66f.tar.gz rust-23c5c1bfe7e3785fa1dcf1d3ff6e6bbaa855f66f.zip | |
pprust: Use `print_mac_common` for attributes
Diffstat (limited to 'src/libsyntax/print')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 8542be8ea60..af9f6bb442d 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -4,7 +4,7 @@ use crate::ast::{Attribute, MacDelimiter, GenericArg}; use crate::util::parser::{self, AssocOp, Fixity}; use crate::attr; use crate::source_map::{self, SourceMap, Spanned}; -use crate::parse::token::{self, BinOpToken, Nonterminal, Token, TokenKind}; +use crate::parse::token::{self, BinOpToken, DelimToken, Nonterminal, Token, TokenKind}; use crate::parse::lexer::comments; use crate::parse::{self, ParseSess}; use crate::print::pp::{self, Breaks}; @@ -619,9 +619,23 @@ pub trait PrintState<'a>: std::ops::Deref<Target=pp::Printer> + std::ops::DerefM if let Some(mi) = attr.meta() { self.print_meta_item(&mi); } else { - self.print_path(&attr.path, false, 0); - self.space(); - self.print_tts(attr.tokens.clone(), true); + match attr.tokens.trees().next() { + Some(TokenTree::Delimited(_, delim, tts)) => { + let delim = match delim { + DelimToken::Brace => MacDelimiter::Brace, + DelimToken::Bracket => MacDelimiter::Bracket, + DelimToken::Paren | DelimToken::NoDelim => MacDelimiter::Parenthesis, + }; + self.print_mac_common(&attr.path, false, None, tts, delim, attr.span); + } + tree => { + self.print_path(&attr.path, false, 0); + if tree.is_some() { + self.space(); + self.print_tts(attr.tokens.clone(), true); + } + } + } } self.word("]"); } |
