about summary refs log tree commit diff
path: root/compiler/rustc_builtin_macros/src/format.rs
diff options
context:
space:
mode:
authorIoaNNUwU <ioannxd@gmail.com>2025-09-08 19:15:35 +0200
committerIoaNNUwU <ioannxd@gmail.com>2025-09-08 19:19:59 +0200
commit43a6f56ca78295164dbf964695a43be7e35b1994 (patch)
tree17dea96b5f4fd951d370e58c826caa3033eee443 /compiler/rustc_builtin_macros/src/format.rs
parent1e733b389192b48110779bc1cd8edcaed7c43b0e (diff)
downloadrust-43a6f56ca78295164dbf964695a43be7e35b1994.tar.gz
rust-43a6f56ca78295164dbf964695a43be7e35b1994.zip
Apply requested changes
Diffstat (limited to 'compiler/rustc_builtin_macros/src/format.rs')
-rw-r--r--compiler/rustc_builtin_macros/src/format.rs44
1 files changed, 15 insertions, 29 deletions
diff --git a/compiler/rustc_builtin_macros/src/format.rs b/compiler/rustc_builtin_macros/src/format.rs
index e5f73188dbd..a6c8e7d29cc 100644
--- a/compiler/rustc_builtin_macros/src/format.rs
+++ b/compiler/rustc_builtin_macros/src/format.rs
@@ -768,38 +768,24 @@ fn report_missing_placeholders(
         // Show example if user didn't use any format specifiers
         let show_example = used.iter().all(|used| !used);
 
-        if !show_example && unused.len() > 1 {
-            diag.note(format!("consider adding {} format specifiers", unused.len()));
-        }
-
-        let original_fmt_str = if fmt_str.len() >= 1 { &fmt_str[..fmt_str.len() - 1] } else { "" };
-
-        if show_example && unused.len() == 1 {
-            diag.note("format specifiers use curly braces: `{}`");
+        if !show_example {
+            if unused.len() > 1 {
+                diag.note(format!("consider adding {} format specifiers", unused.len()));
+            }
+        } else {
+            let original_fmt_str =
+                if fmt_str.len() >= 1 { &fmt_str[..fmt_str.len() - 1] } else { "" };
 
-            diag.span_suggestion_verbose(
-                fmt_span,
-                "consider adding format specifier",
-                format!("\"{}{{}}\"", original_fmt_str),
-                Applicability::MaybeIncorrect,
-            );
-        }
+            let msg = if unused.len() == 1 {
+                "a format specifier".to_string()
+            } else {
+                format!("{} format specifiers", unused.len())
+            };
 
-        if show_example && unused.len() > 1 {
-            diag.note("format specifiers use curly braces: `{}`");
+            let sugg = format!("\"{}{}\"", original_fmt_str, "{}".repeat(unused.len()));
+            let msg = format!("format specifiers use curly braces, consider adding {msg}");
 
-            let mut suggest_fixed_fmt = format!("\"{}", original_fmt_str);
-            for _ in &unused {
-                suggest_fixed_fmt.push_str("{}");
-            }
-            suggest_fixed_fmt.push('"');
-
-            diag.span_suggestion_verbose(
-                fmt_span,
-                format!("consider adding {} format specifiers", unused.len()),
-                suggest_fixed_fmt,
-                Applicability::MaybeIncorrect,
-            );
+            diag.span_suggestion_verbose(fmt_span, msg, sugg, Applicability::MaybeIncorrect);
         }
     }