Skip to content

Commit

Permalink
Add secondary span pointing at the statement (error span)
Browse files Browse the repository at this point in the history
  • Loading branch information
estebank committed Jan 17, 2018
1 parent a4660df commit eb3da09
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 17 deletions.
8 changes: 6 additions & 2 deletions src/libsyntax_ext/format.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
};

Expand Down
3 changes: 2 additions & 1 deletion src/test/ui/macros/format-foreign.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
37 changes: 23 additions & 14 deletions src/test/ui/macros/format-unused-lables.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

0 comments on commit eb3da09

Please sign in to comment.