Deprecate unknown_clippy_lints
This is now handled by unknown_lints
This commit is contained in:
@@ -10,11 +10,10 @@ use rustc_errors::Applicability;
|
|||||||
use rustc_hir::{
|
use rustc_hir::{
|
||||||
Block, Expr, ExprKind, ImplItem, ImplItemKind, Item, ItemKind, StmtKind, TraitFn, TraitItem, TraitItemKind,
|
Block, Expr, ExprKind, ImplItem, ImplItemKind, Item, ItemKind, StmtKind, TraitFn, TraitItem, TraitItemKind,
|
||||||
};
|
};
|
||||||
use rustc_lint::{CheckLintNameResult, EarlyContext, EarlyLintPass, LateContext, LateLintPass, LintContext};
|
use rustc_lint::{EarlyContext, EarlyLintPass, LateContext, LateLintPass, LintContext};
|
||||||
use rustc_middle::lint::in_external_macro;
|
use rustc_middle::lint::in_external_macro;
|
||||||
use rustc_middle::ty;
|
use rustc_middle::ty;
|
||||||
use rustc_session::{declare_lint_pass, declare_tool_lint};
|
use rustc_session::{declare_lint_pass, declare_tool_lint};
|
||||||
use rustc_span::lev_distance::find_best_match_for_name;
|
|
||||||
use rustc_span::source_map::Span;
|
use rustc_span::source_map::Span;
|
||||||
use rustc_span::sym;
|
use rustc_span::sym;
|
||||||
use rustc_span::symbol::{Symbol, SymbolStr};
|
use rustc_span::symbol::{Symbol, SymbolStr};
|
||||||
@@ -156,33 +155,6 @@ declare_clippy_lint! {
|
|||||||
"empty line after outer attribute"
|
"empty line after outer attribute"
|
||||||
}
|
}
|
||||||
|
|
||||||
declare_clippy_lint! {
|
|
||||||
/// **What it does:** Checks for `allow`/`warn`/`deny`/`forbid` attributes with scoped clippy
|
|
||||||
/// lints and if those lints exist in clippy. If there is an uppercase letter in the lint name
|
|
||||||
/// (not the tool name) and a lowercase version of this lint exists, it will suggest to lowercase
|
|
||||||
/// the lint name.
|
|
||||||
///
|
|
||||||
/// **Why is this bad?** A lint attribute with a mistyped lint name won't have an effect.
|
|
||||||
///
|
|
||||||
/// **Known problems:** None.
|
|
||||||
///
|
|
||||||
/// **Example:**
|
|
||||||
/// Bad:
|
|
||||||
/// ```rust
|
|
||||||
/// #![warn(if_not_els)]
|
|
||||||
/// #![deny(clippy::All)]
|
|
||||||
/// ```
|
|
||||||
///
|
|
||||||
/// Good:
|
|
||||||
/// ```rust
|
|
||||||
/// #![warn(if_not_else)]
|
|
||||||
/// #![deny(clippy::all)]
|
|
||||||
/// ```
|
|
||||||
pub UNKNOWN_CLIPPY_LINTS,
|
|
||||||
style,
|
|
||||||
"unknown_lints for scoped Clippy lints"
|
|
||||||
}
|
|
||||||
|
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
/// **What it does:** Checks for `warn`/`deny`/`forbid` attributes targeting the whole clippy::restriction category.
|
/// **What it does:** Checks for `warn`/`deny`/`forbid` attributes targeting the whole clippy::restriction category.
|
||||||
///
|
///
|
||||||
@@ -272,7 +244,6 @@ declare_lint_pass!(Attributes => [
|
|||||||
INLINE_ALWAYS,
|
INLINE_ALWAYS,
|
||||||
DEPRECATED_SEMVER,
|
DEPRECATED_SEMVER,
|
||||||
USELESS_ATTRIBUTE,
|
USELESS_ATTRIBUTE,
|
||||||
UNKNOWN_CLIPPY_LINTS,
|
|
||||||
BLANKET_CLIPPY_RESTRICTION_LINTS,
|
BLANKET_CLIPPY_RESTRICTION_LINTS,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -409,48 +380,9 @@ fn extract_clippy_lint(lint: &NestedMetaItem) -> Option<SymbolStr> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn check_clippy_lint_names(cx: &LateContext<'_>, ident: &str, items: &[NestedMetaItem]) {
|
fn check_clippy_lint_names(cx: &LateContext<'_>, ident: &str, items: &[NestedMetaItem]) {
|
||||||
let lint_store = cx.lints();
|
|
||||||
for lint in items {
|
for lint in items {
|
||||||
if let Some(lint_name) = extract_clippy_lint(lint) {
|
if let Some(lint_name) = extract_clippy_lint(lint) {
|
||||||
if let CheckLintNameResult::Tool(Err((None, _))) = lint_store.check_lint_name(&lint_name, Some(sym::clippy))
|
if lint_name == "restriction" && ident != "allow" {
|
||||||
{
|
|
||||||
span_lint_and_then(
|
|
||||||
cx,
|
|
||||||
UNKNOWN_CLIPPY_LINTS,
|
|
||||||
lint.span(),
|
|
||||||
&format!("unknown clippy lint: clippy::{}", lint_name),
|
|
||||||
|diag| {
|
|
||||||
let name_lower = lint_name.to_lowercase();
|
|
||||||
let symbols = lint_store
|
|
||||||
.get_lints()
|
|
||||||
.iter()
|
|
||||||
.map(|l| Symbol::intern(&l.name_lower()))
|
|
||||||
.collect::<Vec<_>>();
|
|
||||||
let sugg = find_best_match_for_name(
|
|
||||||
&symbols,
|
|
||||||
Symbol::intern(&format!("clippy::{}", name_lower)),
|
|
||||||
None,
|
|
||||||
);
|
|
||||||
if lint_name.chars().any(char::is_uppercase)
|
|
||||||
&& lint_store.find_lints(&format!("clippy::{}", name_lower)).is_ok()
|
|
||||||
{
|
|
||||||
diag.span_suggestion(
|
|
||||||
lint.span(),
|
|
||||||
"lowercase the lint name",
|
|
||||||
format!("clippy::{}", name_lower),
|
|
||||||
Applicability::MachineApplicable,
|
|
||||||
);
|
|
||||||
} else if let Some(sugg) = sugg {
|
|
||||||
diag.span_suggestion(
|
|
||||||
lint.span(),
|
|
||||||
"did you mean",
|
|
||||||
sugg.to_string(),
|
|
||||||
Applicability::MachineApplicable,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
);
|
|
||||||
} else if lint_name == "restriction" && ident != "allow" {
|
|
||||||
span_lint_and_help(
|
span_lint_and_help(
|
||||||
cx,
|
cx,
|
||||||
BLANKET_CLIPPY_RESTRICTION_LINTS,
|
BLANKET_CLIPPY_RESTRICTION_LINTS,
|
||||||
|
|||||||
@@ -163,6 +163,19 @@ declare_deprecated_lint! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
declare_deprecated_lint! {
|
declare_deprecated_lint! {
|
||||||
|
/// **What it does:** Nothing. This lint has been deprecated.
|
||||||
|
///
|
||||||
|
/// **Deprecation reason:** This lint has been uplifted to rustc and is now called
|
||||||
|
/// `panic_fmt`.
|
||||||
pub PANIC_PARAMS,
|
pub PANIC_PARAMS,
|
||||||
"this lint has been uplifted to rustc and is now called `panic_fmt`"
|
"this lint has been uplifted to rustc and is now called `panic_fmt`"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare_deprecated_lint! {
|
||||||
|
/// **What it does:** Nothing. This lint has been deprecated.
|
||||||
|
///
|
||||||
|
/// **Deprecation reason:** This lint has been integrated into the `unknown_lints`
|
||||||
|
/// rustc lint.
|
||||||
|
pub UNKNOWN_CLIPPY_LINTS,
|
||||||
|
"this lint has been integrated into the `unknown_lints` rustc lint"
|
||||||
|
}
|
||||||
|
|||||||
@@ -500,6 +500,10 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
|
|||||||
"clippy::panic_params",
|
"clippy::panic_params",
|
||||||
"this lint has been uplifted to rustc and is now called `panic_fmt`",
|
"this lint has been uplifted to rustc and is now called `panic_fmt`",
|
||||||
);
|
);
|
||||||
|
store.register_removed(
|
||||||
|
"clippy::unknown_clippy_lints",
|
||||||
|
"this lint has been integrated into the `unknown_lints` rustc lint",
|
||||||
|
);
|
||||||
// end deprecated lints, do not remove this comment, it’s used in `update_lints`
|
// end deprecated lints, do not remove this comment, it’s used in `update_lints`
|
||||||
|
|
||||||
// begin register lints, do not remove this comment, it’s used in `update_lints`
|
// begin register lints, do not remove this comment, it’s used in `update_lints`
|
||||||
@@ -541,7 +545,6 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
|
|||||||
&attrs::EMPTY_LINE_AFTER_OUTER_ATTR,
|
&attrs::EMPTY_LINE_AFTER_OUTER_ATTR,
|
||||||
&attrs::INLINE_ALWAYS,
|
&attrs::INLINE_ALWAYS,
|
||||||
&attrs::MISMATCHED_TARGET_OS,
|
&attrs::MISMATCHED_TARGET_OS,
|
||||||
&attrs::UNKNOWN_CLIPPY_LINTS,
|
|
||||||
&attrs::USELESS_ATTRIBUTE,
|
&attrs::USELESS_ATTRIBUTE,
|
||||||
&await_holding_invalid::AWAIT_HOLDING_LOCK,
|
&await_holding_invalid::AWAIT_HOLDING_LOCK,
|
||||||
&await_holding_invalid::AWAIT_HOLDING_REFCELL_REF,
|
&await_holding_invalid::AWAIT_HOLDING_REFCELL_REF,
|
||||||
@@ -1375,7 +1378,6 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
|
|||||||
LintId::of(&attrs::DEPRECATED_CFG_ATTR),
|
LintId::of(&attrs::DEPRECATED_CFG_ATTR),
|
||||||
LintId::of(&attrs::DEPRECATED_SEMVER),
|
LintId::of(&attrs::DEPRECATED_SEMVER),
|
||||||
LintId::of(&attrs::MISMATCHED_TARGET_OS),
|
LintId::of(&attrs::MISMATCHED_TARGET_OS),
|
||||||
LintId::of(&attrs::UNKNOWN_CLIPPY_LINTS),
|
|
||||||
LintId::of(&attrs::USELESS_ATTRIBUTE),
|
LintId::of(&attrs::USELESS_ATTRIBUTE),
|
||||||
LintId::of(&bit_mask::BAD_BIT_MASK),
|
LintId::of(&bit_mask::BAD_BIT_MASK),
|
||||||
LintId::of(&bit_mask::INEFFECTIVE_BIT_MASK),
|
LintId::of(&bit_mask::INEFFECTIVE_BIT_MASK),
|
||||||
@@ -1650,7 +1652,6 @@ pub fn register_plugins(store: &mut rustc_lint::LintStore, sess: &Session, conf:
|
|||||||
LintId::of(&assertions_on_constants::ASSERTIONS_ON_CONSTANTS),
|
LintId::of(&assertions_on_constants::ASSERTIONS_ON_CONSTANTS),
|
||||||
LintId::of(&assign_ops::ASSIGN_OP_PATTERN),
|
LintId::of(&assign_ops::ASSIGN_OP_PATTERN),
|
||||||
LintId::of(&attrs::BLANKET_CLIPPY_RESTRICTION_LINTS),
|
LintId::of(&attrs::BLANKET_CLIPPY_RESTRICTION_LINTS),
|
||||||
LintId::of(&attrs::UNKNOWN_CLIPPY_LINTS),
|
|
||||||
LintId::of(&blacklisted_name::BLACKLISTED_NAME),
|
LintId::of(&blacklisted_name::BLACKLISTED_NAME),
|
||||||
LintId::of(&blocks_in_if_conditions::BLOCKS_IN_IF_CONDITIONS),
|
LintId::of(&blocks_in_if_conditions::BLOCKS_IN_IF_CONDITIONS),
|
||||||
LintId::of(&collapsible_if::COLLAPSIBLE_IF),
|
LintId::of(&collapsible_if::COLLAPSIBLE_IF),
|
||||||
|
|||||||
@@ -9,5 +9,6 @@
|
|||||||
#[warn(clippy::drop_bounds)]
|
#[warn(clippy::drop_bounds)]
|
||||||
#[warn(clippy::temporary_cstring_as_ptr)]
|
#[warn(clippy::temporary_cstring_as_ptr)]
|
||||||
#[warn(clippy::panic_params)]
|
#[warn(clippy::panic_params)]
|
||||||
|
#[warn(clippy::unknown_clippy_lints)]
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
|||||||
@@ -66,11 +66,17 @@ error: lint `clippy::panic_params` has been removed: `this lint has been uplifte
|
|||||||
LL | #[warn(clippy::panic_params)]
|
LL | #[warn(clippy::panic_params)]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: lint `clippy::unknown_clippy_lints` has been removed: `this lint has been integrated into the `unknown_lints` rustc lint`
|
||||||
|
--> $DIR/deprecated.rs:12:8
|
||||||
|
|
|
||||||
|
LL | #[warn(clippy::unknown_clippy_lints)]
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: lint `clippy::unstable_as_slice` has been removed: ``Vec::as_slice` has been stabilized in 1.7`
|
error: lint `clippy::unstable_as_slice` has been removed: ``Vec::as_slice` has been stabilized in 1.7`
|
||||||
--> $DIR/deprecated.rs:1:8
|
--> $DIR/deprecated.rs:1:8
|
||||||
|
|
|
|
||||||
LL | #[warn(clippy::unstable_as_slice)]
|
LL | #[warn(clippy::unstable_as_slice)]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: aborting due to 12 previous errors
|
error: aborting due to 13 previous errors
|
||||||
|
|
||||||
|
|||||||
@@ -1,52 +1,58 @@
|
|||||||
error: unknown clippy lint: clippy::if_not_els
|
error: unknown lint: `clippy::All`
|
||||||
|
--> $DIR/unknown_clippy_lints.rs:5:10
|
||||||
|
|
|
||||||
|
LL | #![allow(clippy::All)]
|
||||||
|
| ^^^^^^^^^^^ help: did you mean: `clippy::all`
|
||||||
|
|
|
||||||
|
= note: `-D unknown-lints` implied by `-D warnings`
|
||||||
|
|
||||||
|
error: unknown lint: `clippy::CMP_NAN`
|
||||||
|
--> $DIR/unknown_clippy_lints.rs:6:9
|
||||||
|
|
|
||||||
|
LL | #![warn(clippy::CMP_NAN)]
|
||||||
|
| ^^^^^^^^^^^^^^^ help: did you mean: `clippy::cmp_nan`
|
||||||
|
|
||||||
|
error: unknown lint: `clippy::if_not_els`
|
||||||
--> $DIR/unknown_clippy_lints.rs:9:8
|
--> $DIR/unknown_clippy_lints.rs:9:8
|
||||||
|
|
|
|
||||||
LL | #[warn(clippy::if_not_els)]
|
LL | #[warn(clippy::if_not_els)]
|
||||||
| ^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::if_not_else`
|
| ^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::if_not_else`
|
||||||
|
|
|
||||||
= note: `-D clippy::unknown-clippy-lints` implied by `-D warnings`
|
|
||||||
|
|
||||||
error: unknown clippy lint: clippy::UNNecsaRy_cAst
|
error: unknown lint: `clippy::UNNecsaRy_cAst`
|
||||||
--> $DIR/unknown_clippy_lints.rs:10:8
|
--> $DIR/unknown_clippy_lints.rs:10:8
|
||||||
|
|
|
|
||||||
LL | #[warn(clippy::UNNecsaRy_cAst)]
|
LL | #[warn(clippy::UNNecsaRy_cAst)]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::unnecessary_cast`
|
| ^^^^^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::unnecessary_cast`
|
||||||
|
|
||||||
error: unknown clippy lint: clippy::useles_transute
|
error: unknown lint: `clippy::useles_transute`
|
||||||
--> $DIR/unknown_clippy_lints.rs:11:8
|
--> $DIR/unknown_clippy_lints.rs:11:8
|
||||||
|
|
|
|
||||||
LL | #[warn(clippy::useles_transute)]
|
LL | #[warn(clippy::useles_transute)]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::useless_transmute`
|
| ^^^^^^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::useless_transmute`
|
||||||
|
|
||||||
error: unknown clippy lint: clippy::dead_cod
|
error: unknown lint: `clippy::dead_cod`
|
||||||
--> $DIR/unknown_clippy_lints.rs:13:8
|
--> $DIR/unknown_clippy_lints.rs:13:8
|
||||||
|
|
|
|
||||||
LL | #[warn(clippy::dead_cod)]
|
LL | #[warn(clippy::dead_cod)]
|
||||||
| ^^^^^^^^^^^^^^^^ help: did you mean: `clippy::drop_copy`
|
| ^^^^^^^^^^^^^^^^ help: did you mean: `clippy::drop_copy`
|
||||||
|
|
||||||
error: unknown clippy lint: clippy::unused_colle
|
error: unknown lint: `clippy::unused_colle`
|
||||||
--> $DIR/unknown_clippy_lints.rs:15:8
|
--> $DIR/unknown_clippy_lints.rs:15:8
|
||||||
|
|
|
|
||||||
LL | #[warn(clippy::unused_colle)]
|
LL | #[warn(clippy::unused_colle)]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::unused_self`
|
| ^^^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::unused_self`
|
||||||
|
|
||||||
error: unknown clippy lint: clippy::const_static_lifetim
|
error: unknown lint: `clippy::const_static_lifetim`
|
||||||
--> $DIR/unknown_clippy_lints.rs:17:8
|
--> $DIR/unknown_clippy_lints.rs:17:8
|
||||||
|
|
|
|
||||||
LL | #[warn(clippy::const_static_lifetim)]
|
LL | #[warn(clippy::const_static_lifetim)]
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::redundant_static_lifetimes`
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: did you mean: `clippy::redundant_static_lifetimes`
|
||||||
|
|
||||||
error: unknown clippy lint: clippy::All
|
error: unknown lint: `clippy::All`
|
||||||
--> $DIR/unknown_clippy_lints.rs:5:10
|
--> $DIR/unknown_clippy_lints.rs:5:10
|
||||||
|
|
|
|
||||||
LL | #![allow(clippy::All)]
|
LL | #![allow(clippy::All)]
|
||||||
| ^^^^^^^^^^^ help: lowercase the lint name: `clippy::all`
|
| ^^^^^^^^^^^ help: did you mean: `clippy::all`
|
||||||
|
|
||||||
error: unknown clippy lint: clippy::CMP_NAN
|
error: aborting due to 9 previous errors
|
||||||
--> $DIR/unknown_clippy_lints.rs:6:9
|
|
||||||
|
|
|
||||||
LL | #![warn(clippy::CMP_NAN)]
|
|
||||||
| ^^^^^^^^^^^^^^^ help: lowercase the lint name: `clippy::cmp_nan`
|
|
||||||
|
|
||||||
error: aborting due to 8 previous errors
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user