about summary refs log tree commit diff
path: root/compiler/rustc_errors
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2023-11-07 19:32:48 +0000
committerEsteban Küber <esteban@kuber.com.ar>2023-11-19 17:47:41 +0000
commit42aa1273b0dd317c4aafdcf649f40cbad4499b60 (patch)
treed5684d2eb75fb342c0c34f7f09e1cc52f2ef0462 /compiler/rustc_errors
parent27794f95fdccda6a6ed292f6724b546cff35e13d (diff)
downloadrust-42aa1273b0dd317c4aafdcf649f40cbad4499b60.tar.gz
rust-42aa1273b0dd317c4aafdcf649f40cbad4499b60.zip
When encountering struct fn call literal with private fields, suggest all builders
When encountering code like `Box(42)`, suggest `Box::new(42)` and *all*
other associated functions that return `-> Box<T>`.
Diffstat (limited to 'compiler/rustc_errors')
-rw-r--r--compiler/rustc_errors/src/diagnostic.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/rustc_errors/src/diagnostic.rs b/compiler/rustc_errors/src/diagnostic.rs
index 470f318eb33..b379d17dc22 100644
--- a/compiler/rustc_errors/src/diagnostic.rs
+++ b/compiler/rustc_errors/src/diagnostic.rs
@@ -759,6 +759,9 @@ impl Diagnostic {
         suggestions: impl IntoIterator<Item = String>,
         applicability: Applicability,
     ) -> &mut Self {
+        let mut suggestions: Vec<_> = suggestions.into_iter().collect();
+        suggestions.sort();
+
         self.span_suggestions_with_style(
             sp,
             msg,
@@ -768,7 +771,9 @@ impl Diagnostic {
         )
     }
 
-    /// [`Diagnostic::span_suggestions()`] but you can set the [`SuggestionStyle`].
+    /// [`Diagnostic::span_suggestions()`] but you can set the [`SuggestionStyle`]. This version
+    /// *doesn't* sort the suggestions, so the caller has control of the order in which they are
+    /// presented.
     pub fn span_suggestions_with_style(
         &mut self,
         sp: Span,
@@ -777,9 +782,7 @@ impl Diagnostic {
         applicability: Applicability,
         style: SuggestionStyle,
     ) -> &mut Self {
-        let mut suggestions: Vec<_> = suggestions.into_iter().collect();
-        suggestions.sort();
-
+        let suggestions: Vec<_> = suggestions.into_iter().collect();
         debug_assert!(
             !(sp.is_empty() && suggestions.iter().any(|suggestion| suggestion.is_empty())),
             "Span must not be empty and have no suggestion"