diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-07-11 02:01:45 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-07-11 12:07:35 +0300 |
| commit | da50d598816c0ba367e330309707cb94637cce2e (patch) | |
| tree | 079eac93228859aad46b4df53a6ba24daed59eea | |
| parent | 69070058cd2fdb57ebbbbef94892cfb5688ce27f (diff) | |
| download | rust-da50d598816c0ba367e330309707cb94637cce2e.tar.gz rust-da50d598816c0ba367e330309707cb94637cce2e.zip | |
pretty-print: Do not lose the `$crate` printing flag in `print_tt`
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/macros/auxiliary/dollar-crate-nested-encoding.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/macros/dollar-crate-nested-encoding.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/dollar-crate-issue-57089.stdout | 4 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/dollar-crate-issue-62325.stdout | 4 | ||||
| -rw-r--r-- | src/test/ui/proc-macro/dollar-crate.stdout | 12 |
6 files changed, 29 insertions, 11 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 8050026a00d..8623399c587 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -689,7 +689,7 @@ pub trait PrintState<'a>: std::ops::Deref<Target=pp::Printer> + std::ops::DerefM TokenTree::Delimited(_, delim, tts) => { self.word(token_kind_to_string(&token::OpenDelim(delim))); self.space(); - self.print_tts(tts); + self.print_tts(tts, convert_dollar_crate); self.space(); self.word(token_kind_to_string(&token::CloseDelim(delim))) }, diff --git a/src/test/ui/macros/auxiliary/dollar-crate-nested-encoding.rs b/src/test/ui/macros/auxiliary/dollar-crate-nested-encoding.rs new file mode 100644 index 00000000000..bbe6a48c5b1 --- /dev/null +++ b/src/test/ui/macros/auxiliary/dollar-crate-nested-encoding.rs @@ -0,0 +1,10 @@ +pub type S = u8; + +macro_rules! generate_exported { () => { + #[macro_export] + macro_rules! exported { + () => ($crate::S) + } +}} + +generate_exported!(); diff --git a/src/test/ui/macros/dollar-crate-nested-encoding.rs b/src/test/ui/macros/dollar-crate-nested-encoding.rs new file mode 100644 index 00000000000..5242f7830bb --- /dev/null +++ b/src/test/ui/macros/dollar-crate-nested-encoding.rs @@ -0,0 +1,8 @@ +// check-pass +// aux-build:dollar-crate-nested-encoding.rs + +extern crate dollar_crate_nested_encoding; + +type A = dollar_crate_nested_encoding::exported!(); + +fn main() {} diff --git a/src/test/ui/proc-macro/dollar-crate-issue-57089.stdout b/src/test/ui/proc-macro/dollar-crate-issue-57089.stdout index 84821259d7b..0611fcb13f2 100644 --- a/src/test/ui/proc-macro/dollar-crate-issue-57089.stdout +++ b/src/test/ui/proc-macro/dollar-crate-issue-57089.stdout @@ -1,4 +1,4 @@ -PRINT-BANG INPUT (DISPLAY): struct M ( crate :: S ) ; +PRINT-BANG INPUT (DISPLAY): struct M ( $crate :: S ) ; PRINT-BANG INPUT (DEBUG): TokenStream [ Ident { ident: "struct", @@ -39,7 +39,7 @@ PRINT-BANG INPUT (DEBUG): TokenStream [ }, ] PRINT-ATTR INPUT (DISPLAY): struct A(crate::S); -PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ( crate :: S ) ; +PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ( $crate :: S ) ; PRINT-ATTR INPUT (DEBUG): TokenStream [ Ident { ident: "struct", diff --git a/src/test/ui/proc-macro/dollar-crate-issue-62325.stdout b/src/test/ui/proc-macro/dollar-crate-issue-62325.stdout index 17ad1a7af70..6c483d7a91b 100644 --- a/src/test/ui/proc-macro/dollar-crate-issue-62325.stdout +++ b/src/test/ui/proc-macro/dollar-crate-issue-62325.stdout @@ -1,5 +1,5 @@ PRINT-ATTR INPUT (DISPLAY): struct A(identity!(crate :: S)); -PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ( identity ! ( crate :: S ) ) ; +PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ( identity ! ( $crate :: S ) ) ; PRINT-ATTR INPUT (DEBUG): TokenStream [ Ident { ident: "struct", @@ -55,7 +55,7 @@ PRINT-ATTR INPUT (DEBUG): TokenStream [ }, ] PRINT-ATTR INPUT (DISPLAY): struct B(identity!(::dollar_crate_external :: S)); -PRINT-ATTR RE-COLLECTED (DISPLAY): struct B ( identity ! ( ::dollar_crate_external :: S ) ) ; +PRINT-ATTR RE-COLLECTED (DISPLAY): struct B ( identity ! ( $crate :: S ) ) ; PRINT-ATTR INPUT (DEBUG): TokenStream [ Ident { ident: "struct", diff --git a/src/test/ui/proc-macro/dollar-crate.stdout b/src/test/ui/proc-macro/dollar-crate.stdout index 9d9677d49e3..3c88ee99842 100644 --- a/src/test/ui/proc-macro/dollar-crate.stdout +++ b/src/test/ui/proc-macro/dollar-crate.stdout @@ -1,4 +1,4 @@ -PRINT-BANG INPUT (DISPLAY): struct M ( crate :: S ) ; +PRINT-BANG INPUT (DISPLAY): struct M ( $crate :: S ) ; PRINT-BANG INPUT (DEBUG): TokenStream [ Ident { ident: "struct", @@ -39,7 +39,7 @@ PRINT-BANG INPUT (DEBUG): TokenStream [ }, ] PRINT-ATTR INPUT (DISPLAY): struct A(crate::S); -PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ( crate :: S ) ; +PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ( $crate :: S ) ; PRINT-ATTR INPUT (DEBUG): TokenStream [ Ident { ident: "struct", @@ -80,7 +80,7 @@ PRINT-ATTR INPUT (DEBUG): TokenStream [ }, ] PRINT-DERIVE INPUT (DISPLAY): struct D(crate::S); -PRINT-DERIVE RE-COLLECTED (DISPLAY): struct D ( crate :: S ) ; +PRINT-DERIVE RE-COLLECTED (DISPLAY): struct D ( $crate :: S ) ; PRINT-DERIVE INPUT (DEBUG): TokenStream [ Ident { ident: "struct", @@ -120,7 +120,7 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [ span: #2 bytes(LO..HI), }, ] -PRINT-BANG INPUT (DISPLAY): struct M ( ::dollar_crate_external :: S ) ; +PRINT-BANG INPUT (DISPLAY): struct M ( $crate :: S ) ; PRINT-BANG INPUT (DEBUG): TokenStream [ Ident { ident: "struct", @@ -161,7 +161,7 @@ PRINT-BANG INPUT (DEBUG): TokenStream [ }, ] PRINT-ATTR INPUT (DISPLAY): struct A(::dollar_crate_external::S); -PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ( ::dollar_crate_external :: S ) ; +PRINT-ATTR RE-COLLECTED (DISPLAY): struct A ( $crate :: S ) ; PRINT-ATTR INPUT (DEBUG): TokenStream [ Ident { ident: "struct", @@ -202,7 +202,7 @@ PRINT-ATTR INPUT (DEBUG): TokenStream [ }, ] PRINT-DERIVE INPUT (DISPLAY): struct D(::dollar_crate_external::S); -PRINT-DERIVE RE-COLLECTED (DISPLAY): struct D ( ::dollar_crate_external :: S ) ; +PRINT-DERIVE RE-COLLECTED (DISPLAY): struct D ( $crate :: S ) ; PRINT-DERIVE INPUT (DEBUG): TokenStream [ Ident { ident: "struct", |
