|
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