Skip to content

Commit

Permalink
Auto merge of #11840 - GuillaumeGomez:improve-maybe_misused_cfg, r=bl…
Browse files Browse the repository at this point in the history
…yxyas

Improve maybe misused cfg

Follow-up of the improvements that were suggested to me in #11821:

 * I unified the output to use the same terms.
 * I updated the code to prevent creating a new symbol.

r? `@blyxyas`

changelog: [`maybe_misued_cfg`]: Output and code improvements
  • Loading branch information
bors committed Nov 19, 2023
2 parents 9c3a365 + dfbca7f commit 41140e3
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 24 deletions.
9 changes: 5 additions & 4 deletions clippy_lints/src/attrs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -929,15 +929,16 @@ fn check_nested_cfg(cx: &EarlyContext<'_>, items: &[NestedMetaItem]) {
fn check_nested_misused_cfg(cx: &EarlyContext<'_>, items: &[NestedMetaItem]) {
for item in items {
if let NestedMetaItem::MetaItem(meta) = item {
if meta.has_name(sym!(features))
if let Some(ident) = meta.ident()
&& ident.name.as_str() == "features"
&& let Some(val) = meta.value_str()
{
span_lint_and_sugg(
cx,
MAYBE_MISUSED_CFG,
meta.span,
"feature may misspelled as features",
"use",
"'feature' may be misspelled as 'features'",
"did you mean",
format!("feature = \"{val}\""),
Applicability::MaybeIncorrect,
);
Expand All @@ -953,7 +954,7 @@ fn check_nested_misused_cfg(cx: &EarlyContext<'_>, items: &[NestedMetaItem]) {
MAYBE_MISUSED_CFG,
meta.span,
&format!("'test' may be misspelled as '{}'", ident.name.as_str()),
"do you mean",
"did you mean",
"test".to_string(),
Applicability::MaybeIncorrect,
);
Expand Down
8 changes: 4 additions & 4 deletions tests/ui/cfg_features.fixed
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

fn main() {
#[cfg(feature = "not-really-a-feature")]
//~^ ERROR: feature may misspelled as features
//~^ ERROR: 'feature' may be misspelled as 'features'
//~| NOTE: `-D clippy::maybe-misused-cfg` implied by `-D warnings`
let _ = 1 + 2;

#[cfg(all(feature = "right", feature = "wrong"))]
//~^ ERROR: feature may misspelled as features
//~^ ERROR: 'feature' may be misspelled as 'features'
let _ = 1 + 2;

#[cfg(all(feature = "wrong1", any(feature = "right", feature = "wrong2", feature, features)))]
//~^ ERROR: feature may misspelled as features
//~| ERROR: feature may misspelled as features
//~^ ERROR: 'feature' may be misspelled as 'features'
//~| ERROR: 'feature' may be misspelled as 'features'
let _ = 1 + 2;

#[cfg(test)]
Expand Down
8 changes: 4 additions & 4 deletions tests/ui/cfg_features.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

fn main() {
#[cfg(features = "not-really-a-feature")]
//~^ ERROR: feature may misspelled as features
//~^ ERROR: 'feature' may be misspelled as 'features'
//~| NOTE: `-D clippy::maybe-misused-cfg` implied by `-D warnings`
let _ = 1 + 2;

#[cfg(all(feature = "right", features = "wrong"))]
//~^ ERROR: feature may misspelled as features
//~^ ERROR: 'feature' may be misspelled as 'features'
let _ = 1 + 2;

#[cfg(all(features = "wrong1", any(feature = "right", features = "wrong2", feature, features)))]
//~^ ERROR: feature may misspelled as features
//~| ERROR: feature may misspelled as features
//~^ ERROR: 'feature' may be misspelled as 'features'
//~| ERROR: 'feature' may be misspelled as 'features'
let _ = 1 + 2;

#[cfg(tests)]
Expand Down
24 changes: 12 additions & 12 deletions tests/ui/cfg_features.stderr
Original file line number Diff line number Diff line change
@@ -1,53 +1,53 @@
error: feature may misspelled as features
error: 'feature' may be misspelled as 'features'
--> $DIR/cfg_features.rs:4:11
|
LL | #[cfg(features = "not-really-a-feature")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `feature = "not-really-a-feature"`
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: did you mean: `feature = "not-really-a-feature"`
|
= note: `-D clippy::maybe-misused-cfg` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::maybe_misused_cfg)]`

error: feature may misspelled as features
error: 'feature' may be misspelled as 'features'
--> $DIR/cfg_features.rs:9:34
|
LL | #[cfg(all(feature = "right", features = "wrong"))]
| ^^^^^^^^^^^^^^^^^^ help: use: `feature = "wrong"`
| ^^^^^^^^^^^^^^^^^^ help: did you mean: `feature = "wrong"`

error: feature may misspelled as features
error: 'feature' may be misspelled as 'features'
--> $DIR/cfg_features.rs:13:15
|
LL | #[cfg(all(features = "wrong1", any(feature = "right", features = "wrong2", feature, features)))]
| ^^^^^^^^^^^^^^^^^^^ help: use: `feature = "wrong1"`
| ^^^^^^^^^^^^^^^^^^^ help: did you mean: `feature = "wrong1"`

error: feature may misspelled as features
error: 'feature' may be misspelled as 'features'
--> $DIR/cfg_features.rs:13:59
|
LL | #[cfg(all(features = "wrong1", any(feature = "right", features = "wrong2", feature, features)))]
| ^^^^^^^^^^^^^^^^^^^ help: use: `feature = "wrong2"`
| ^^^^^^^^^^^^^^^^^^^ help: did you mean: `feature = "wrong2"`

error: 'test' may be misspelled as 'tests'
--> $DIR/cfg_features.rs:18:11
|
LL | #[cfg(tests)]
| ^^^^^ help: do you mean: `test`
| ^^^^^ help: did you mean: `test`

error: 'test' may be misspelled as 'Test'
--> $DIR/cfg_features.rs:21:11
|
LL | #[cfg(Test)]
| ^^^^ help: do you mean: `test`
| ^^^^ help: did you mean: `test`

error: 'test' may be misspelled as 'tests'
--> $DIR/cfg_features.rs:25:15
|
LL | #[cfg(all(tests, Test))]
| ^^^^^ help: do you mean: `test`
| ^^^^^ help: did you mean: `test`

error: 'test' may be misspelled as 'Test'
--> $DIR/cfg_features.rs:25:22
|
LL | #[cfg(all(tests, Test))]
| ^^^^ help: do you mean: `test`
| ^^^^ help: did you mean: `test`

error: aborting due to 8 previous errors

0 comments on commit 41140e3

Please sign in to comment.