Add secondary span pointing at the statement (error span)

This commit is contained in:
Esteban Küber 2018-01-16 18:11:35 -08:00
parent a4660dfea2
commit eb3da09333
3 changed files with 31 additions and 17 deletions

View file

@ -814,8 +814,12 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt,
let (sp, msg) = errs.into_iter().next().unwrap();
cx.ecx.struct_span_err(sp, msg)
} else {
cx.ecx.struct_span_err(errs.iter().map(|&(sp, _)| sp).collect::<Vec<Span>>(),
"multiple unused formatting arguments")
let mut diag = cx.ecx.struct_span_err(
errs.iter().map(|&(sp, _)| sp).collect::<Vec<Span>>(),
"multiple unused formatting arguments"
);
diag.span_label(cx.fmtsp, "multiple unused arguments in this statement");
diag
}
};

View file

@ -2,11 +2,12 @@ error: multiple unused formatting arguments
--> $DIR/format-foreign.rs:12:30
|
12 | println!("%.*3$s %s!/n", "Hello,", "World", 4); //~ ERROR multiple unused formatting arguments
| ^^^^^^^^ ^^^^^^^ ^
| -------------------------^^^^^^^^--^^^^^^^--^-- multiple unused arguments in this statement
|
= help: `%.*3$s` should be written as `{:.2$}`
= help: `%s` should be written as `{}`
= note: printf formatting not supported; see the documentation for `std::fmt`
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: argument never used
--> $DIR/format-foreign.rs:13:29

View file

@ -2,17 +2,24 @@ error: multiple unused formatting arguments
--> $DIR/format-unused-lables.rs:12:22
|
12 | println!("Test", 123, 456, 789);
| ^^^ ^^^ ^^^
| -----------------^^^--^^^--^^^-- multiple unused arguments in this statement
|
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: multiple unused formatting arguments
--> $DIR/format-unused-lables.rs:16:9
|
16 | 123, //~ ERROR multiple unused formatting arguments
| ^^^
17 | 456,
| ^^^
18 | 789
| ^^^
15 | / println!("Test2",
16 | | 123, //~ ERROR multiple unused formatting arguments
| | ^^^
17 | | 456,
| | ^^^
18 | | 789
| | ^^^
19 | | );
| |______- multiple unused arguments in this statement
|
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: named argument never used
--> $DIR/format-unused-lables.rs:21:35
@ -23,16 +30,18 @@ error: named argument never used
error: multiple unused formatting arguments
--> $DIR/format-unused-lables.rs:24:9
|
24 | "woo!", //~ ERROR multiple unused formatting arguments
| ^^^^^^
25 | STUFF=
26 | "things"
| ^^^^^^^^
27 | , UNUSED="args");
| ^^^^^^
23 | / println!("Some more $STUFF",
24 | | "woo!", //~ ERROR multiple unused formatting arguments
| | ^^^^^^
25 | | STUFF=
26 | | "things"
| | ^^^^^^^^
27 | | , UNUSED="args");
| |_______________________^^^^^^_- multiple unused arguments in this statement
|
= help: `$STUFF` should be written as `{STUFF}`
= note: shell formatting not supported; see the documentation for `std::fmt`
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: aborting due to 4 previous errors