diff --git a/clippy_lints/src/inline_fn_without_body.rs b/clippy_lints/src/inline_fn_without_body.rs index 29492cf8c436..cedcdec1062f 100644 --- a/clippy_lints/src/inline_fn_without_body.rs +++ b/clippy_lints/src/inline_fn_without_body.rs @@ -6,6 +6,7 @@ use crate::rustc::hir::*; use crate::syntax::ast::{Attribute, Name}; use crate::utils::span_lint_and_then; use crate::utils::sugg::DiagnosticBuilderExt; +use crate::rustc_errors::Applicability; /// **What it does:** Checks for `#[inline]` on trait methods without bodies /// @@ -56,7 +57,7 @@ fn check_attrs(cx: &LateContext<'_, '_>, name: Name, attrs: &[Attribute]) { attr.span, &format!("use of `#[inline]` on trait method `{}` which has no body", name), |db| { - db.suggest_remove_item(cx, attr.span, "remove"); + db.suggest_remove_item(cx, attr.span, "remove", Applicability::Unspecified); }, ); } diff --git a/clippy_lints/src/new_without_default.rs b/clippy_lints/src/new_without_default.rs index 131f73b7c617..0163849dd229 100644 --- a/clippy_lints/src/new_without_default.rs +++ b/clippy_lints/src/new_without_default.rs @@ -8,6 +8,7 @@ use crate::syntax::source_map::Span; use crate::utils::paths; use crate::utils::{get_trait_def_id, implements_trait, return_ty, same_tys, span_lint_and_then}; use crate::utils::sugg::DiagnosticBuilderExt; +use crate::rustc_errors::Applicability; /// **What it does:** Checks for types with a `fn new() -> Self` method and no /// implementation of @@ -129,7 +130,13 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NewWithoutDefault { impl_item.span, &format!("you should consider deriving a `Default` implementation for `{}`", self_ty), |db| { - db.suggest_item_with_attr(cx, sp, "try this", "#[derive(Default)]"); + db.suggest_item_with_attr( + cx, + sp, + "try this", + "#[derive(Default)]", + Applicability::Unspecified, + ); }); } else { span_lint_and_then( @@ -143,6 +150,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for NewWithoutDefault { item.span, "try this", &create_new_without_default_suggest_msg(self_ty), + Applicability::Unspecified, ); }, ); diff --git a/clippy_lints/src/utils/sugg.rs b/clippy_lints/src/utils/sugg.rs index f7d8c1fc1512..0cdfd623f45e 100644 --- a/clippy_lints/src/utils/sugg.rs +++ b/clippy_lints/src/utils/sugg.rs @@ -462,7 +462,7 @@ pub trait DiagnosticBuilderExt<'a, T: LintContext<'a>> { /// ```rust,ignore /// db.suggest_item_with_attr(cx, item, "#[derive(Default)]"); /// ``` - fn suggest_item_with_attr(&mut self, cx: &T, item: Span, msg: &str, attr: &D); + fn suggest_item_with_attr(&mut self, cx: &T, item: Span, msg: &str, attr: &D, applicability: Applicability); /// Suggest to add an item before another. /// @@ -476,7 +476,7 @@ pub trait DiagnosticBuilderExt<'a, T: LintContext<'a>> { /// bar(); /// }"); /// ``` - fn suggest_prepend_item(&mut self, cx: &T, item: Span, msg: &str, new_item: &str); + fn suggest_prepend_item(&mut self, cx: &T, item: Span, msg: &str, new_item: &str, applicability: Applicability); /// Suggest to completely remove an item. /// @@ -489,11 +489,11 @@ pub trait DiagnosticBuilderExt<'a, T: LintContext<'a>> { /// ```rust,ignore /// db.suggest_remove_item(cx, item, "remove this") /// ``` - fn suggest_remove_item(&mut self, cx: &T, item: Span, msg: &str); + fn suggest_remove_item(&mut self, cx: &T, item: Span, msg: &str, applicability: Applicability); } impl<'a, 'b, 'c, T: LintContext<'c>> DiagnosticBuilderExt<'c, T> for rustc_errors::DiagnosticBuilder<'b> { - fn suggest_item_with_attr(&mut self, cx: &T, item: Span, msg: &str, attr: &D) { + fn suggest_item_with_attr(&mut self, cx: &T, item: Span, msg: &str, attr: &D, applicability: Applicability) { if let Some(indent) = indentation(cx, item) { let span = item.with_hi(item.lo()); @@ -501,12 +501,12 @@ impl<'a, 'b, 'c, T: LintContext<'c>> DiagnosticBuilderExt<'c, T> for rustc_error span, msg, format!("{}\n{}", attr, indent), - Applicability::Unspecified, + applicability, ); } } - fn suggest_prepend_item(&mut self, cx: &T, item: Span, msg: &str, new_item: &str) { + fn suggest_prepend_item(&mut self, cx: &T, item: Span, msg: &str, new_item: &str, applicability: Applicability) { if let Some(indent) = indentation(cx, item) { let span = item.with_hi(item.lo()); @@ -527,12 +527,12 @@ impl<'a, 'b, 'c, T: LintContext<'c>> DiagnosticBuilderExt<'c, T> for rustc_error span, msg, format!("{}\n{}", new_item, indent), - Applicability::Unspecified, + applicability, ); } } - fn suggest_remove_item(&mut self, cx: &T, item: Span, msg: &str) { + fn suggest_remove_item(&mut self, cx: &T, item: Span, msg: &str, applicability: Applicability) { let mut remove_span = item; let hi = cx.sess().source_map().next_point(remove_span).hi(); let fmpos = cx.sess().source_map().lookup_byte_offset(hi); @@ -549,7 +549,7 @@ impl<'a, 'b, 'c, T: LintContext<'c>> DiagnosticBuilderExt<'c, T> for rustc_error remove_span, msg, String::new(), - Applicability::Unspecified, + applicability, ); } }