Skip to content

Commit 43a6f56

Browse files
committed
Apply requested changes
1 parent 1e733b3 commit 43a6f56

File tree

6 files changed

+25
-47
lines changed

6 files changed

+25
-47
lines changed

compiler/rustc_builtin_macros/src/format.rs

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -768,38 +768,24 @@ fn report_missing_placeholders(
768768
// Show example if user didn't use any format specifiers
769769
let show_example = used.iter().all(|used| !used);
770770

771-
if !show_example && unused.len() > 1 {
772-
diag.note(format!("consider adding {} format specifiers", unused.len()));
773-
}
774-
775-
let original_fmt_str = if fmt_str.len() >= 1 { &fmt_str[..fmt_str.len() - 1] } else { "" };
776-
777-
if show_example && unused.len() == 1 {
778-
diag.note("format specifiers use curly braces: `{}`");
771+
if !show_example {
772+
if unused.len() > 1 {
773+
diag.note(format!("consider adding {} format specifiers", unused.len()));
774+
}
775+
} else {
776+
let original_fmt_str =
777+
if fmt_str.len() >= 1 { &fmt_str[..fmt_str.len() - 1] } else { "" };
779778

780-
diag.span_suggestion_verbose(
781-
fmt_span,
782-
"consider adding format specifier",
783-
format!("\"{}{{}}\"", original_fmt_str),
784-
Applicability::MaybeIncorrect,
785-
);
786-
}
779+
let msg = if unused.len() == 1 {
780+
"a format specifier".to_string()
781+
} else {
782+
format!("{} format specifiers", unused.len())
783+
};
787784

788-
if show_example && unused.len() > 1 {
789-
diag.note("format specifiers use curly braces: `{}`");
785+
let sugg = format!("\"{}{}\"", original_fmt_str, "{}".repeat(unused.len()));
786+
let msg = format!("format specifiers use curly braces, consider adding {msg}");
790787

791-
let mut suggest_fixed_fmt = format!("\"{}", original_fmt_str);
792-
for _ in &unused {
793-
suggest_fixed_fmt.push_str("{}");
794-
}
795-
suggest_fixed_fmt.push('"');
796-
797-
diag.span_suggestion_verbose(
798-
fmt_span,
799-
format!("consider adding {} format specifiers", unused.len()),
800-
suggest_fixed_fmt,
801-
Applicability::MaybeIncorrect,
802-
);
788+
diag.span_suggestion_verbose(fmt_span, msg, sugg, Applicability::MaybeIncorrect);
803789
}
804790
}
805791

tests/ui/fmt/ifmt-bad-arg.stderr

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ LL | format!("", 1, 2);
6363
| | argument never used
6464
| multiple missing formatting specifiers
6565
|
66-
= note: format specifiers use curly braces: `{}`
67-
help: consider adding 2 format specifiers
66+
help: format specifiers use curly braces, consider adding 2 format specifiers
6867
|
6968
LL | format!("{}{}", 1, 2);
7069
| ++++
@@ -109,8 +108,7 @@ LL | format!("", foo=2);
109108
| |
110109
| formatting specifier missing
111110
|
112-
= note: format specifiers use curly braces: `{}`
113-
help: consider adding format specifier
111+
help: format specifiers use curly braces, consider adding a format specifier
114112
|
115113
LL | format!("{}", foo=2);
116114
| ++

tests/ui/macros/format-unused-lables.stderr

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ LL | println!("Test", 123, 456, 789);
88
| | argument never used
99
| multiple missing formatting specifiers
1010
|
11-
= note: format specifiers use curly braces: `{}`
12-
help: consider adding 3 format specifiers
11+
help: format specifiers use curly braces, consider adding 3 format specifiers
1312
|
1413
LL | println!("Test{}{}{}", 123, 456, 789);
1514
| ++++++
@@ -26,8 +25,7 @@ LL | 456,
2625
LL | 789
2726
| ^^^ argument never used
2827
|
29-
= note: format specifiers use curly braces: `{}`
30-
help: consider adding 3 format specifiers
28+
help: format specifiers use curly braces, consider adding 3 format specifiers
3129
|
3230
LL | println!("Test2{}{}{}",
3331
| ++++++
@@ -40,8 +38,7 @@ LL | println!("Some stuff", UNUSED="args");
4038
| |
4139
| formatting specifier missing
4240
|
43-
= note: format specifiers use curly braces: `{}`
44-
help: consider adding format specifier
41+
help: format specifiers use curly braces, consider adding a format specifier
4542
|
4643
LL | println!("Some stuff{}", UNUSED="args");
4744
| ++

tests/ui/mir/unsized-extern-static.stderr

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ LL | println!("C", unsafe { &symbol });
66
| |
77
| formatting specifier missing
88
|
9-
= note: format specifiers use curly braces: `{}`
10-
help: consider adding format specifier
9+
help: format specifiers use curly braces, consider adding a format specifier
1110
|
1211
LL | println!("C{}", unsafe { &symbol });
1312
| ++

tests/ui/suggestions/missing-format-specifiers-issue-68293.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@ fn no_format_specifier_two_unused_args() {
22
println!("Hello", "World");
33
//~^ ERROR argument never used
44
//~| NOTE formatting specifier missing
5-
//~| NOTE format specifiers use curly braces: `{}`
65
//~| NOTE argument never used
6+
//~| HELP format specifiers use curly braces, consider adding a format specifier
77
}
88

99
fn no_format_specifier_multiple_unused_args() {
1010
println!("list: ", 1, 2, 3);
1111
//~^ ERROR multiple unused formatting arguments
1212
//~| NOTE multiple missing formatting specifiers
13-
//~| NOTE format specifiers use curly braces: `{}`
1413
//~| NOTE argument never used
1514
//~| NOTE argument never used
1615
//~| NOTE argument never used
16+
//~| HELP format specifiers use curly braces, consider adding 3 format specifiers
1717
}
1818

1919
fn missing_format_specifiers_one_unused_arg() {

tests/ui/suggestions/missing-format-specifiers-issue-68293.stderr

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ LL | println!("Hello", "World");
66
| |
77
| formatting specifier missing
88
|
9-
= note: format specifiers use curly braces: `{}`
10-
help: consider adding format specifier
9+
help: format specifiers use curly braces, consider adding a format specifier
1110
|
1211
LL | println!("Hello{}", "World");
1312
| ++
@@ -22,8 +21,7 @@ LL | println!("list: ", 1, 2, 3);
2221
| | argument never used
2322
| multiple missing formatting specifiers
2423
|
25-
= note: format specifiers use curly braces: `{}`
26-
help: consider adding 3 format specifiers
24+
help: format specifiers use curly braces, consider adding 3 format specifiers
2725
|
2826
LL | println!("list: {}{}{}", 1, 2, 3);
2927
| ++++++

0 commit comments

Comments
 (0)