From 744c50315dc52cd6d9f09b80561c936afa2b3b96 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 9 Mar 2026 12:12:30 +0100 Subject: [PATCH 1/2] Add missing `Diag::with_span_suggestion_with_style` method --- compiler/rustc_errors/src/diagnostic.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/rustc_errors/src/diagnostic.rs b/compiler/rustc_errors/src/diagnostic.rs index 2aac669d744a..18f1af36b620 100644 --- a/compiler/rustc_errors/src/diagnostic.rs +++ b/compiler/rustc_errors/src/diagnostic.rs @@ -934,6 +934,7 @@ pub fn span_suggestion( self } } + with_fn! { with_span_suggestion_with_style, /// [`Diag::span_suggestion()`] but you can set the [`SuggestionStyle`]. pub fn span_suggestion_with_style( &mut self, @@ -956,7 +957,7 @@ pub fn span_suggestion_with_style( applicability, }); self - } + } } with_fn! { with_span_suggestion_verbose, /// Always show the suggested change. From a4a37ed163a6c1d227b58047d91457589c611cf8 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 9 Mar 2026 22:32:51 +0100 Subject: [PATCH 2/2] Use `Diag::with_span_suggestion_with_style` method in librustdoc --- .../passes/lint/redundant_explicit_links.rs | 44 +++++++++---------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/src/librustdoc/passes/lint/redundant_explicit_links.rs b/src/librustdoc/passes/lint/redundant_explicit_links.rs index 84dba5d2f115..13bc4c079aa7 100644 --- a/src/librustdoc/passes/lint/redundant_explicit_links.rs +++ b/src/librustdoc/passes/lint/redundant_explicit_links.rs @@ -165,7 +165,7 @@ impl<'a> Diagnostic<'a, ()> for RedundantExplicitLinks { fn into_diag(self, dcx: DiagCtxtHandle<'a>, level: Level) -> Diag<'a, ()> { let Self { explicit_span, display_span, link_span, display_link } = self; - let mut diag = Diag::new(dcx, level, "redundant explicit link target") + Diag::new(dcx, level, "redundant explicit link target") .with_span_label( explicit_span, "explicit target is redundant", @@ -176,17 +176,15 @@ fn into_diag(self, dcx: DiagCtxtHandle<'a>, level: Level) -> Diag<'a, ()> { ) .with_note( "when a link's destination is not specified,\nthe label is used to resolve intra-doc links" - ); - // FIXME (GuillaumeGomez): We cannot use `derive(Diagnostic)` because of this method. - // FIXME2 (GuillaumeGomez): Why isn't there a `with_` equivalent for this method? - diag.span_suggestion_with_style( - link_span, - "remove explicit link target", - format!("[{}]", display_link), - Applicability::MaybeIncorrect, - SuggestionStyle::ShowAlways, - ); - diag + ) + // FIXME (GuillaumeGomez): We cannot use `derive(Diagnostic)` because of this method. + .with_span_suggestion_with_style( + link_span, + "remove explicit link target", + format!("[{}]", display_link), + Applicability::MaybeIncorrect, + SuggestionStyle::ShowAlways, + ) } } @@ -267,7 +265,7 @@ impl<'a> Diagnostic<'a, ()> for RedundantExplicitLinkTarget { fn into_diag(self, dcx: DiagCtxtHandle<'a>, level: Level) -> Diag<'a, ()> { let Self { explicit_span, display_span, def_span, link_span, display_link } = self; - let mut diag = Diag::new(dcx, level, "redundant explicit link target") + Diag::new(dcx, level, "redundant explicit link target") .with_span_label(explicit_span, "explicit target is redundant") .with_span_label( display_span, @@ -276,17 +274,15 @@ fn into_diag(self, dcx: DiagCtxtHandle<'a>, level: Level) -> Diag<'a, ()> { .with_span_note(def_span, "referenced explicit link target defined here") .with_note( "when a link's destination is not specified,\nthe label is used to resolve intra-doc links" - ); - // FIXME (GuillaumeGomez): We cannot use `derive(Diagnostic)` because of this method. - // FIXME2 (GuillaumeGomez): Why isn't there a `with_` equivalent for this method? - diag.span_suggestion_with_style( - link_span, - "remove explicit link target", - format!("[{}]", display_link), - Applicability::MaybeIncorrect, - SuggestionStyle::ShowAlways, - ); - diag + ) + // FIXME (GuillaumeGomez): We cannot use `derive(Diagnostic)` because of this method. + .with_span_suggestion_with_style( + link_span, + "remove explicit link target", + format!("[{}]", display_link), + Applicability::MaybeIncorrect, + SuggestionStyle::ShowAlways, + ) } }