about summary refs log tree commit diff
path: root/compiler/rustc_errors/src
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2023-12-10 09:03:54 +0100
committerRalf Jung <post@ralfj.de>2023-12-10 09:03:54 +0100
commit035d86594ddcaec12b59c35f8de1a99c3b8b81fb (patch)
tree0a9542f67746bf7a90b8bb4881b56de39b138cb9 /compiler/rustc_errors/src
parente8a25b0723b2d4e693881ecd4c1d4c7f8ba8eb51 (diff)
parent43714edb6f291892f571875b42235208f075884f (diff)
downloadrust-035d86594ddcaec12b59c35f8de1a99c3b8b81fb.tar.gz
rust-035d86594ddcaec12b59c35f8de1a99c3b8b81fb.zip
Merge from rustc
Diffstat (limited to 'compiler/rustc_errors/src')
-rw-r--r--compiler/rustc_errors/src/diagnostic.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/rustc_errors/src/diagnostic.rs b/compiler/rustc_errors/src/diagnostic.rs
index 6aaf4a0f5cf..4fb63d67e78 100644
--- a/compiler/rustc_errors/src/diagnostic.rs
+++ b/compiler/rustc_errors/src/diagnostic.rs
@@ -591,17 +591,18 @@ impl Diagnostic {
     pub fn multipart_suggestion_with_style(
         &mut self,
         msg: impl Into<SubdiagnosticMessage>,
-        suggestion: Vec<(Span, String)>,
+        mut suggestion: Vec<(Span, String)>,
         applicability: Applicability,
         style: SuggestionStyle,
     ) -> &mut Self {
-        let mut parts = suggestion
+        suggestion.sort_unstable();
+        suggestion.dedup();
+
+        let parts = suggestion
             .into_iter()
             .map(|(span, snippet)| SubstitutionPart { snippet, span })
             .collect::<Vec<_>>();
 
-        parts.sort_unstable_by_key(|part| part.span);
-
         assert!(!parts.is_empty());
         debug_assert_eq!(
             parts.iter().find(|part| part.span.is_empty() && part.snippet.is_empty()),