diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2020-01-21 01:02:01 +0200 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2020-01-26 17:18:55 +0200 |
| commit | a7b0aa0675f6e81bdb62e614c020a6862381c98a (patch) | |
| tree | 4bf5d1d55161b299505f9287ccbe4664302e650f | |
| parent | 787c458eeb20e447989124e2900e02e8e03b1c51 (diff) | |
rustc_span: move pretty syntax from macro_backtrace to ExpnKind::descr.
| -rw-r--r-- | src/librustc_expand/expand.rs | 5 | ||||
| -rw-r--r-- | src/librustc_span/hygiene.rs | 14 | ||||
| -rw-r--r-- | src/librustc_span/lib.rs | 12 | ||||
| -rw-r--r-- | src/test/ui/did_you_mean/recursion_limit_macro.stderr | 2 | ||||
| -rw-r--r-- | src/test/ui/infinite/infinite-macro-expansion.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/infinite/infinite-macro-expansion.stderr | 2 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-16098.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-16098.stderr | 2 | ||||
| -rw-r--r-- | src/test/ui/macros/trace_faulty_macros.stderr | 2 | ||||
| m--------- | src/tools/cargo | 0 |
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 |
