Show backtrace numbers in backtrace whenever more than one is involved

Previously, we only displayed 'frame' numbers in a macro backtrace when more
than two frames were involved. This commit should help make backtrace
more readable, since these kinds of messages can quickly get confusing.
This commit is contained in:
Aaron Hill 2020-08-05 11:02:25 -04:00
parent 8b84156c6e
commit f9f8923393
No known key found for this signature in database
GPG Key ID: B4087E510E98B164
2 changed files with 6 additions and 6 deletions

View File

@ -362,7 +362,7 @@ fn render_multispan_macro_backtrace(&self, span: &mut MultiSpan, always_backtrac
format!( format!(
"in this expansion of `{}`{}", "in this expansion of `{}`{}",
trace.kind.descr(), trace.kind.descr(),
if macro_backtrace.len() > 2 { if macro_backtrace.len() > 1 {
// if macro_backtrace.len() == 1 it'll be // if macro_backtrace.len() == 1 it'll be
// pointed at by "in this macro invocation" // pointed at by "in this macro invocation"
format!(" (#{})", i + 1) format!(" (#{})", i + 1)
@ -393,7 +393,7 @@ fn render_multispan_macro_backtrace(&self, span: &mut MultiSpan, always_backtrac
trace.call_site, trace.call_site,
format!( format!(
"in this macro invocation{}", "in this macro invocation{}",
if macro_backtrace.len() > 2 && always_backtrace { if macro_backtrace.len() > 1 && always_backtrace {
// only specify order when the macro // only specify order when the macro
// backtrace is multiple levels deep // backtrace is multiple levels deep
format!(" (#{})", i + 1) format!(" (#{})", i + 1)

View File

@ -17,20 +17,20 @@ LL | / macro_rules! pong {
LL | | () => { syntax error }; LL | | () => { syntax error };
| | ^^^^^ expected one of 8 possible tokens | | ^^^^^ expected one of 8 possible tokens
LL | | } LL | | }
| |__- in this expansion of `pong!` | |__- in this expansion of `pong!` (#2)
... ...
LL | ping!(); LL | ping!();
| -------- in this macro invocation | -------- in this macro invocation (#1)
| |
::: $DIR/auxiliary/ping.rs:5:1 ::: $DIR/auxiliary/ping.rs:5:1
| |
LL | / macro_rules! ping { LL | / macro_rules! ping {
LL | | () => { LL | | () => {
LL | | pong!(); LL | | pong!();
| | -------- in this macro invocation | | -------- in this macro invocation (#2)
LL | | } LL | | }
LL | | } LL | | }
| |_- in this expansion of `ping!` | |_- in this expansion of `ping!` (#1)
error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error`
--> $DIR/main.rs:10:20 --> $DIR/main.rs:10:20