]> git.lizzy.rs Git - rust.git/commitdiff
Add secondary span pointing at the statement (error span)
authorEsteban Küber <esteban@kuber.com.ar>
Wed, 17 Jan 2018 02:11:35 +0000 (18:11 -0800)
committerEsteban Küber <esteban@kuber.com.ar>
Wed, 17 Jan 2018 02:13:43 +0000 (18:13 -0800)
src/libsyntax_ext/format.rs
src/test/ui/macros/format-foreign.stderr
src/test/ui/macros/format-unused-lables.stderr

index 29280d203c79f771c27786f2d4c6f75dffd52118..a7822414c6959472e856064557b3ac65e47d7b07 100644 (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
             }
         };
 
index 31804ca4c40d15751465885059ff574d8e2f150a..f9852c5477332f89eb683e93dddf0debcaeea74a 100644 (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
index 59aed9d8bc6fb5dd322a057dc9f7b43d43fafa1a..64ea5626c1d62776bbd2146becb7af161228410e 100644 (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