Change:
After , the output for errors looks like: that's a lot of lines dedicated to underlining macro acruments. They should all be output in one multispan. cc
Hum indeed. If no one has taken it in 12 hours, I'll give it a look.
I'm poking at it right now. I think I need to fix 's methods to accept instead of just , and then I can use directly. After all, I created the problem, I should probably fix it. :P
Perfect. Good luck! :)
I believe this should be closed.
Hold on, it seems the PR is still open.
Seeing as there isn’t anyone working on this anymore, I’ll be happy to take over. This is my first issue, (woot), so I’m not exactly sure where to start. I assume I should just fork the repo, change to use , and fix the tests? Pinging and in case you want to work on this still.
I am not working on this anymore.
Those steps may be correct; or someone else may be able to verify for you. You can also look at and which appear to be previous PRs which attempted to do this. Let us know if you'd like any help!
Awesome! I'm super excited. Anyone specific I should ?
bors will select someone automatically if you don't specify anyone, but I think any of me, or would be available for review and or guidance.
For some reason I seem to be getting unrelated to my changes. (ran )
Those tests shouldn't actually be running in ... cc For these changes, I would suggest , I think that should be enough.
Gotcha, it’s possible I copy pasted from the wrong command (on mobile can’t check right now), but I’ll use that command for testing and see if it works. I’m kinda busy for the rest of the week but I’ll keep working on it in my free time. I’ll comment here until I get a PR ready with any updates I have.

Discussion:
} else { let mut diag = cx.ecx.struct_span_err(cx.fmtsp, "multiple unused formatting arguments"); <del> for (sp, msg) in errs { diag.span_note(sp, msg); </del> <ins> // Ignoring message, as it gets repetitive // Then use MultiSpan to not clutter up errors for (sp, _) in errs { diag.span_label(sp, "unused"); </ins> } diag } };

--> $DIR/format-foreign.rs:12:5 | 12 |     println!("%.*3$s %s!/n", "Hello,", "World", 4); <del> |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ </del> <ins> |     ^^^^^^^^^^^^^^^^^^^^^^^^^--------^^-------^^-^^ |                              |         |        | |                              |         |        unused |                              |         unused |                              unused </ins> | <del> note: argument never used --> $DIR/format-foreign.rs:12:30 | 12 |     println!("%.*3$s %s!/n", "Hello,", "World", 4); |                              ^^^^^^^^ note: argument never used --> $DIR/format-foreign.rs:12:40 | 12 |     println!("%.*3$s %s!/n", "Hello,", "World", 4); |                                        ^^^^^^^ note: argument never used --> $DIR/format-foreign.rs:12:49 | 12 |     println!("%.*3$s %s!/n", "Hello,", "World", 4); |                                                 ^ </del> = 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`

<ins> // Copyright 2017 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your // option. This file may not be copied, modified, or distributed // except according to those terms. fn main() { println!("Test", 123, 456, 789); println!("Test2", 123, 456, 789 ); println!("Some stuff", UNUSED="args"); println!("Some more $STUFF", "woo!", STUFF= "things" , UNUSED="args"); } </ins>

<ins> error: multiple unused formatting arguments --> $DIR/format-unused-lables.rs:12:5 | 12 |     println!("Test", 123, 456, 789); |     ^^^^^^^^^^^^^^^^^---^^---^^---^^ |                      |    |    | |                      |    |    unused |                      |    unused |                      unused | = note: this error originates in a macro outside of the current crate error: multiple unused formatting arguments --> $DIR/format-unused-lables.rs:14:5 | 14 | /     println!("Test2", 15 | |         123, | |         --- unused 16 | |         456, | |         --- unused 17 | |         789 | |         --- unused 18 | |     ); | |______^ | = note: this error originates in a macro outside of the current crate error: named argument never used --> $DIR/format-unused-lables.rs:20:35 | 20 |     println!("Some stuff", UNUSED="args"); |                                   ^^^^^^ error: multiple unused formatting arguments --> $DIR/format-unused-lables.rs:22:5 | 22 | /     println!("Some more $STUFF", 23 | |         "woo!", | |         ------ unused 24 | |             STUFF= 25 | |        "things" | |        -------- unused 26 | |              , UNUSED="args"); | |_______________________------_^ |                         | |                         unused | = 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 error: aborting due to 4 previous errors </ins>