about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2020-01-21 01:02:01 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2020-01-26 17:18:55 +0200
commita7b0aa0675f6e81bdb62e614c020a6862381c98a (patch)
tree4bf5d1d55161b299505f9287ccbe4664302e650f
parent787c458eeb20e447989124e2900e02e8e03b1c51 (diff)
rustc_span: move pretty syntax from macro_backtrace to ExpnKind::descr.
-rw-r--r--src/librustc_expand/expand.rs5
-rw-r--r--src/librustc_span/hygiene.rs14
-rw-r--r--src/librustc_span/lib.rs12
-rw-r--r--src/test/ui/did_you_mean/recursion_limit_macro.stderr2
-rw-r--r--src/test/ui/infinite/infinite-macro-expansion.rs2
-rw-r--r--src/test/ui/infinite/infinite-macro-expansion.stderr2
-rw-r--r--src/test/ui/issues/issue-16098.rs2
-rw-r--r--src/test/ui/issues/issue-16098.stderr2
-rw-r--r--src/test/ui/macros/trace_faulty_macros.stderr2
m---------src/tools/cargo0
10 files changed, 17 insertions, 26 deletions
diff --git a/src/librustc_expand/expand.rs b/src/librustc_expand/expand.rs
index 3254d0c913d..f915f44c17a 100644
--- a/src/librustc_expand/expand.rs
+++ b/src/librustc_expand/expand.rs
@@ -596,10 +596,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
             let suggested_limit = self.cx.ecfg.recursion_limit * 2;
             let mut err = self.cx.struct_span_err(
                 expn_data.call_site,
-                &format!(
-                    "recursion limit reached while expanding the macro `{}`",
-                    expn_data.kind.descr()
-                ),
+                &format!("recursion limit reached while expanding `{}`", expn_data.kind.descr()),
             );
             err.help(&format!(
                 "consider adding a `#![recursion_limit=\"{}\"]` attribute to your crate",
diff --git a/src/librustc_span/hygiene.rs b/src/librustc_span/hygiene.rs
index 366201d66c4..a368a881674 100644
--- a/src/librustc_span/hygiene.rs
+++ b/src/librustc_span/hygiene.rs
@@ -732,12 +732,16 @@ pub enum ExpnKind {
 }
 
 impl ExpnKind {
-    pub fn descr(&self) -> Symbol {
+    pub fn descr(&self) -> String {
         match *self {
-            ExpnKind::Root => kw::PathRoot,
-            ExpnKind::Macro(_, descr) => descr,
-            ExpnKind::AstPass(kind) => Symbol::intern(kind.descr()),
-            ExpnKind::Desugaring(kind) => Symbol::intern(kind.descr()),
+            ExpnKind::Root => kw::PathRoot.to_string(),
+            ExpnKind::Macro(macro_kind, name) => match macro_kind {
+                MacroKind::Bang => format!("{}!", name),
+                MacroKind::Attr => format!("#[{}]", name),
+                MacroKind::Derive => format!("#[derive({})]", name),
+            },
+            ExpnKind::AstPass(kind) => kind.descr().to_string(),
+            ExpnKind::Desugaring(kind) => format!("desugaring of {}", kind.descr()),
         }
     }
 }
diff --git a/src/librustc_span/lib.rs b/src/librustc_span/lib.rs
index 5779d17e3e5..764312021ef 100644
--- a/src/librustc_span/lib.rs
+++ b/src/librustc_span/lib.rs
@@ -455,19 +455,9 @@ impl Span {
             }
             // Don't print recursive invocations.
             if !expn_data.call_site.source_equal(&prev_span) {
-                let (pre, post) = match expn_data.kind {
-                    ExpnKind::Root => break,
-                    ExpnKind::Desugaring(..) => ("desugaring of ", ""),
-                    ExpnKind::AstPass(..) => ("", ""),
-                    ExpnKind::Macro(macro_kind, _) => match macro_kind {
-                        MacroKind::Bang => ("", "!"),
-                        MacroKind::Attr => ("#[", "]"),
-                        MacroKind::Derive => ("#[derive(", ")]"),
-                    },
-                };
                 result.push(MacroBacktrace {
                     call_site: expn_data.call_site,
-                    macro_decl_name: format!("{}{}{}", pre, expn_data.kind.descr(), post),
+                    macro_decl_name: expn_data.kind.descr(),
                     def_site_span: expn_data.def_site,
                 });
             }
diff --git a/src/test/ui/did_you_mean/recursion_limit_macro.stderr b/src/test/ui/did_you_mean/recursion_limit_macro.stderr
index 6640ced5c9e..1cc59051605 100644
--- a/src/test/ui/did_you_mean/recursion_limit_macro.stderr
+++ b/src/test/ui/did_you_mean/recursion_limit_macro.stderr
@@ -1,4 +1,4 @@
-error: recursion limit reached while expanding the macro `recurse`
+error: recursion limit reached while expanding `recurse!`
   --> $DIR/recursion_limit_macro.rs:10:31
    |
 LL |     ($t:tt $($tail:tt)*) => { recurse!($($tail)*) };
diff --git a/src/test/ui/infinite/infinite-macro-expansion.rs b/src/test/ui/infinite/infinite-macro-expansion.rs
index 968d8360bb0..6ea0bc73dc0 100644
--- a/src/test/ui/infinite/infinite-macro-expansion.rs
+++ b/src/test/ui/infinite/infinite-macro-expansion.rs
@@ -1,5 +1,5 @@
 macro_rules! recursive {
-    () => (recursive!()) //~ ERROR recursion limit reached while expanding the macro `recursive`
+    () => (recursive!()) //~ ERROR recursion limit reached while expanding `recursive!`
 }
 
 fn main() {
diff --git a/src/test/ui/infinite/infinite-macro-expansion.stderr b/src/test/ui/infinite/infinite-macro-expansion.stderr
index 0c0c6596760..159312e5c1b 100644
--- a/src/test/ui/infinite/infinite-macro-expansion.stderr
+++ b/src/test/ui/infinite/infinite-macro-expansion.stderr
@@ -1,4 +1,4 @@
-error: recursion limit reached while expanding the macro `recursive`
+error: recursion limit reached while expanding `recursive!`
   --> $DIR/infinite-macro-expansion.rs:2:12
    |
 LL |     () => (recursive!())
diff --git a/src/test/ui/issues/issue-16098.rs b/src/test/ui/issues/issue-16098.rs
index a1131f80e90..00acc20fc9e 100644
--- a/src/test/ui/issues/issue-16098.rs
+++ b/src/test/ui/issues/issue-16098.rs
@@ -4,7 +4,7 @@ macro_rules! prob1 {
     };
     ($n:expr) => {
         if ($n % 3 == 0) || ($n % 5 == 0) {
-            $n + prob1!($n - 1); //~ ERROR recursion limit reached while expanding the macro `prob1`
+            $n + prob1!($n - 1); //~ ERROR recursion limit reached while expanding `prob1!`
         } else {
             prob1!($n - 1);
         }
diff --git a/src/test/ui/issues/issue-16098.stderr b/src/test/ui/issues/issue-16098.stderr
index f890baf8eba..2b9657d4628 100644
--- a/src/test/ui/issues/issue-16098.stderr
+++ b/src/test/ui/issues/issue-16098.stderr
@@ -1,4 +1,4 @@
-error: recursion limit reached while expanding the macro `prob1`
+error: recursion limit reached while expanding `prob1!`
   --> $DIR/issue-16098.rs:7:18
    |
 LL |             $n + prob1!($n - 1);
diff --git a/src/test/ui/macros/trace_faulty_macros.stderr b/src/test/ui/macros/trace_faulty_macros.stderr
index f06e6581ff7..4e86daffb61 100644
--- a/src/test/ui/macros/trace_faulty_macros.stderr
+++ b/src/test/ui/macros/trace_faulty_macros.stderr
@@ -20,7 +20,7 @@ LL |     my_faulty_macro!();
    = note: to `my_faulty_macro ! (bcd) ;`
    = note: expanding `my_faulty_macro! { bcd }`
 
-error: recursion limit reached while expanding the macro `my_recursive_macro`
+error: recursion limit reached while expanding `my_recursive_macro!`
   --> $DIR/trace_faulty_macros.rs:22:9
    |
 LL |         my_recursive_macro!();
diff --git a/src/tools/cargo b/src/tools/cargo
-Subproject f6449ba236db31995255ac5e4cad4ab88296a7c
+Subproject b68b0978ab8012f871c80736fb910d14b89c449