about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNoah Lev <camelidcamel@gmail.com>2021-07-03 15:10:06 -0700
committerNoah Lev <camelidcamel@gmail.com>2021-07-03 16:35:18 -0700
commit7ffec7028a54aeed6076f7043734b682fdf68f6e (patch)
treeaa93358eca68daf1dac0d9c6c8cde769bcb534bf
parentf82d4845f219357c80ed68a6391d0bf00611f228 (diff)
downloadrust-7ffec7028a54aeed6076f7043734b682fdf68f6e.tar.gz
rust-7ffec7028a54aeed6076f7043734b682fdf68f6e.zip
rustc_ast_pretty: Don't print space after `$`
For example, this code:

    $arg:expr

used to be pretty-printed as:

    $ arg : expr

but is now pretty-printed as:

    $arg : expr
-rw-r--r--compiler/rustc_ast_pretty/src/pprust/state.rs6
-rw-r--r--src/test/pretty/cast-lt.pp2
-rw-r--r--src/test/pretty/delimited-token-groups.rs2
-rw-r--r--src/test/pretty/macro.rs2
-rw-r--r--src/test/pretty/macro_rules.rs6
-rw-r--r--src/test/rustdoc/decl_macro.rs12
-rw-r--r--src/test/rustdoc/macro_rules-matchers.rs14
-rw-r--r--src/test/rustdoc/macros.rs8
-rw-r--r--src/test/ui/hygiene/unpretty-debug.stdout2
-rw-r--r--src/test/ui/proc-macro/meta-macro-hygiene.stdout2
-rw-r--r--src/test/ui/proc-macro/nonterminal-token-hygiene.stdout4
11 files changed, 32 insertions, 28 deletions
diff --git a/compiler/rustc_ast_pretty/src/pprust/state.rs b/compiler/rustc_ast_pretty/src/pprust/state.rs
index f14d8a693fd..8b7b306a54d 100644
--- a/compiler/rustc_ast_pretty/src/pprust/state.rs
+++ b/compiler/rustc_ast_pretty/src/pprust/state.rs
@@ -136,11 +136,11 @@ pub fn print_crate<'a>(
     s.s.eof()
 }
 
-// This makes printed token streams look slightly nicer,
-// and also addresses some specific regressions described in #63896 and #73345.
+/// This makes printed token streams look slightly nicer,
+/// and also addresses some specific regressions described in #63896 and #73345.
 fn tt_prepend_space(tt: &TokenTree, prev: &TokenTree) -> bool {
     if let TokenTree::Token(token) = prev {
-        if matches!(token.kind, token::Dot) {
+        if matches!(token.kind, token::Dot | token::Dollar) {
             return false;
         }
         if let token::DocComment(comment_kind, ..) = token.kind {
diff --git a/src/test/pretty/cast-lt.pp b/src/test/pretty/cast-lt.pp
index 4f6a9249090..e6c4d195691 100644
--- a/src/test/pretty/cast-lt.pp
+++ b/src/test/pretty/cast-lt.pp
@@ -8,6 +8,6 @@ extern crate std;
 // pretty-mode:expanded
 // pp-exact:cast-lt.pp
 
-macro_rules! negative { ($ e : expr) => { $ e < 0 } }
+macro_rules! negative { ($e : expr) => { $e < 0 } }
 
 fn main() { (1 as i32) < 0; }
diff --git a/src/test/pretty/delimited-token-groups.rs b/src/test/pretty/delimited-token-groups.rs
index 125f2b0fa16..257c032b536 100644
--- a/src/test/pretty/delimited-token-groups.rs
+++ b/src/test/pretty/delimited-token-groups.rs
@@ -2,7 +2,7 @@
 
 #![feature(rustc_attrs)]
 
-macro_rules! mac { ($ ($ tt : tt) *) => () }
+macro_rules! mac { ($($tt : tt) *) => () }
 
 mac! {
     struct S { field1 : u8, field2 : u16, } impl Clone for S
diff --git a/src/test/pretty/macro.rs b/src/test/pretty/macro.rs
index 1e1e1dbfb3e..d3865d93a30 100644
--- a/src/test/pretty/macro.rs
+++ b/src/test/pretty/macro.rs
@@ -2,6 +2,6 @@
 
 #![feature(decl_macro)]
 
-pub(crate) macro mac { ($ arg : expr) => { $ arg + $ arg } }
+pub(crate) macro mac { ($arg : expr) => { $arg + $arg } }
 
 fn main() { }
diff --git a/src/test/pretty/macro_rules.rs b/src/test/pretty/macro_rules.rs
index da223d164f9..3b13f2530dd 100644
--- a/src/test/pretty/macro_rules.rs
+++ b/src/test/pretty/macro_rules.rs
@@ -11,9 +11,9 @@ macro_rules! matcher_brackets {
 }
 
 macro_rules! all_fragments {
-    ($ b : block, $ e : expr, $ i : ident, $ it : item, $ l : lifetime, $ lit
-     : literal, $ m : meta, $ p : pat, $ pth : path, $ s : stmt, $ tt : tt, $
-     ty : ty, $ vis : vis) => { } ;
+    ($b : block, $e : expr, $i : ident, $it : item, $l : lifetime, $lit :
+     literal, $m : meta, $p : pat, $pth : path, $s : stmt, $tt : tt, $ty : ty,
+     $vis : vis) => { } ;
 }
 
 fn main() { }
diff --git a/src/test/rustdoc/decl_macro.rs b/src/test/rustdoc/decl_macro.rs
index 2b7021d9a53..fe19dadbe02 100644
--- a/src/test/rustdoc/decl_macro.rs
+++ b/src/test/rustdoc/decl_macro.rs
@@ -9,7 +9,7 @@ pub macro my_macro() {
 
 }
 
-// @has decl_macro/macro.my_macro_2.html //pre 'pub macro my_macro_2($ ($ tok : tt) *) {'
+// @has decl_macro/macro.my_macro_2.html //pre 'pub macro my_macro_2($($tok : tt) *) {'
 // @has - //pre '...'
 // @has - //pre '}'
 pub macro my_macro_2($($tok:tt)*) {
@@ -18,8 +18,8 @@ pub macro my_macro_2($($tok:tt)*) {
 
 // @has decl_macro/macro.my_macro_multi.html //pre 'pub macro my_macro_multi {'
 // @has - //pre '(_) => { ... },'
-// @has - //pre '($ foo : ident.$ bar : expr) => { ... },'
-// @has - //pre '($ ($ foo : literal), +) => { ... },'
+// @has - //pre '($foo : ident.$bar : expr) => { ... },'
+// @has - //pre '($($foo : literal), +) => { ... },'
 // @has - //pre '}'
 pub macro my_macro_multi {
     (_) => {
@@ -33,7 +33,7 @@ pub macro my_macro_multi {
     }
 }
 
-// @has decl_macro/macro.by_example_single.html //pre 'pub macro by_example_single($ foo : expr) {'
+// @has decl_macro/macro.by_example_single.html //pre 'pub macro by_example_single($foo : expr) {'
 // @has - //pre '...'
 // @has - //pre '}'
 pub macro by_example_single {
@@ -42,12 +42,12 @@ pub macro by_example_single {
 
 mod a {
     mod b {
-        // @has decl_macro/a/b/macro.by_example_vis.html //pre 'pub(super) macro by_example_vis($ foo : expr) {'
+        // @has decl_macro/a/b/macro.by_example_vis.html //pre 'pub(super) macro by_example_vis($foo : expr) {'
         pub(in super) macro by_example_vis {
             ($foo:expr) => {}
         }
         mod c {
-            // @has decl_macro/a/b/c/macro.by_example_vis_named.html //pre 'pub(in a) macro by_example_vis_named($ foo : expr) {'
+            // @has decl_macro/a/b/c/macro.by_example_vis_named.html //pre 'pub(in a) macro by_example_vis_named($foo : expr) {'
             pub(in a) macro by_example_vis_named {
                 ($foo:expr) => {}
             }
diff --git a/src/test/rustdoc/macro_rules-matchers.rs b/src/test/rustdoc/macro_rules-matchers.rs
index c243094f81c..5f8340e7312 100644
--- a/src/test/rustdoc/macro_rules-matchers.rs
+++ b/src/test/rustdoc/macro_rules-matchers.rs
@@ -14,10 +14,12 @@
 // @has - '//span[@class="op"]' '>'
 // @has - '{ ... };'
 
-// @has - '($ ($'
-// @has - '//span[@class="ident"]' 'arg'
+// @has - '($('
+// @has - '//span[@class="macro-nonterminal"]' '$'
+// @has - '//span[@class="macro-nonterminal"]' 'arg'
 // @has - ':'
 // @has - '//span[@class="ident"]' 'tt'
+// @has - '),'
 // @has - '//span[@class="op"]' '+'
 // @has - ')'
 pub use std::todo;
@@ -27,10 +29,12 @@ mod mod1 {
     // @has - 'macro_rules!'
     // @has - 'macro1'
     // @has - '{ ()'
-    // @has - '($ ('
-    // @has - 'arg'
+    // @has - '($('
+    // @has - '//span[@class="macro-nonterminal"]' '$'
+    // @has - '//span[@class="macro-nonterminal"]' 'arg'
+    // @has - ':'
     // @has - 'expr'
-    // @has - ','
+    // @has - '),'
     // @has - '+'
     // @has - ')'
     #[macro_export]
diff --git a/src/test/rustdoc/macros.rs b/src/test/rustdoc/macros.rs
index f415be3669d..1cd454720e7 100644
--- a/src/test/rustdoc/macros.rs
+++ b/src/test/rustdoc/macros.rs
@@ -1,7 +1,7 @@
 // @has macros/macro.my_macro.html //pre 'macro_rules! my_macro {'
 // @has - //pre '() => { ... };'
-// @has - //pre '($ a : tt) => { ... };'
-// @has - //pre '($ e : expr) => { ... };'
+// @has - //pre '($a : tt) => { ... };'
+// @has - //pre '($e : expr) => { ... };'
 #[macro_export]
 macro_rules! my_macro {
     () => [];
@@ -12,8 +12,8 @@ macro_rules! my_macro {
 // Check that exported macro defined in a module are shown at crate root.
 // @has macros/macro.my_sub_macro.html //pre 'macro_rules! my_sub_macro {'
 // @has - //pre '() => { ... };'
-// @has - //pre '($ a : tt) => { ... };'
-// @has - //pre '($ e : expr) => { ... };'
+// @has - //pre '($a : tt) => { ... };'
+// @has - //pre '($e : expr) => { ... };'
 mod sub {
     #[macro_export]
     macro_rules! my_sub_macro {
diff --git a/src/test/ui/hygiene/unpretty-debug.stdout b/src/test/ui/hygiene/unpretty-debug.stdout
index e3445a4b80f..ae2857d505e 100644
--- a/src/test/ui/hygiene/unpretty-debug.stdout
+++ b/src/test/ui/hygiene/unpretty-debug.stdout
@@ -8,7 +8,7 @@
 #![feature /* 0#0 */(no_core)]
 #![no_core /* 0#0 */]
 
-macro_rules! foo /* 0#0 */ { ($ x : ident) => { y + $ x } }
+macro_rules! foo /* 0#0 */ { ($x : ident) => { y + $x } }
 
 fn bar /* 0#0 */() {
     let x /* 0#0 */ = 1;
diff --git a/src/test/ui/proc-macro/meta-macro-hygiene.stdout b/src/test/ui/proc-macro/meta-macro-hygiene.stdout
index 95ef260537a..368326e0216 100644
--- a/src/test/ui/proc-macro/meta-macro-hygiene.stdout
+++ b/src/test/ui/proc-macro/meta-macro-hygiene.stdout
@@ -30,7 +30,7 @@ macro_rules! produce_it
     */ {
     () =>
     {
-        meta_macro :: print_def_site! ($ crate :: dummy! ()) ;
+        meta_macro :: print_def_site! ($crate :: dummy! ()) ;
         // `print_def_site!` will respan the `$crate` identifier
         // with `Span::def_site()`. This should cause it to resolve
         // relative to `meta_macro`, *not* `make_macro` (despite
diff --git a/src/test/ui/proc-macro/nonterminal-token-hygiene.stdout b/src/test/ui/proc-macro/nonterminal-token-hygiene.stdout
index ac020cddf08..2911707fdb0 100644
--- a/src/test/ui/proc-macro/nonterminal-token-hygiene.stdout
+++ b/src/test/ui/proc-macro/nonterminal-token-hygiene.stdout
@@ -50,9 +50,9 @@ macro_rules! outer
     /*
     0#0
     */ {
-    ($ item : item) =>
+    ($item : item) =>
     {
-        macro inner() { print_bang! { $ item } } inner! () ;
+        macro inner() { print_bang! { $item } } inner! () ;
 
     } ;
 }