|
1 | 1 | //! Clippy wrappers around rustc's diagnostic functions. |
2 | 2 |
|
3 | | -use rustc_errors::{Applicability, CodeSuggestion, DiagnosticBuilder, Substitution, SubstitutionPart, SuggestionStyle}; |
| 3 | +use rustc_errors::{Applicability, DiagnosticBuilder}; |
4 | 4 | use rustc_hir::HirId; |
5 | 5 | use rustc_lint::{LateContext, Lint, LintContext}; |
6 | 6 | use rustc_span::source_map::{MultiSpan, Span}; |
@@ -198,20 +198,20 @@ pub fn span_lint_and_sugg<'a, T: LintContext>( |
198 | 198 | /// appear once per |
199 | 199 | /// replacement. In human-readable format though, it only appears once before |
200 | 200 | /// the whole suggestion. |
201 | | -pub fn multispan_sugg<I>(diag: &mut DiagnosticBuilder<'_>, help_msg: String, sugg: I) |
| 201 | +pub fn multispan_sugg<I>(diag: &mut DiagnosticBuilder<'_>, help_msg: &str, sugg: I) |
202 | 202 | where |
203 | 203 | I: IntoIterator<Item = (Span, String)>, |
204 | 204 | { |
205 | | - let sugg = CodeSuggestion { |
206 | | - substitutions: vec![Substitution { |
207 | | - parts: sugg |
208 | | - .into_iter() |
209 | | - .map(|(span, snippet)| SubstitutionPart { snippet, span }) |
210 | | - .collect(), |
211 | | - }], |
212 | | - msg: help_msg, |
213 | | - style: SuggestionStyle::ShowCode, |
214 | | - applicability: Applicability::Unspecified, |
215 | | - }; |
216 | | - diag.suggestions.push(sugg); |
| 205 | + multispan_sugg_with_applicability(diag, help_msg, Applicability::Unspecified, sugg) |
| 206 | +} |
| 207 | + |
| 208 | +pub fn multispan_sugg_with_applicability<I>( |
| 209 | + diag: &mut DiagnosticBuilder<'_>, |
| 210 | + help_msg: &str, |
| 211 | + applicability: Applicability, |
| 212 | + sugg: I, |
| 213 | +) where |
| 214 | + I: IntoIterator<Item = (Span, String)>, |
| 215 | +{ |
| 216 | + diag.multipart_suggestion(help_msg, sugg.into_iter().collect(), applicability); |
217 | 217 | } |
0 commit comments