diff options
| author | Timo <30553356+y21@users.noreply.github.com> | 2025-07-21 11:53:28 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-21 11:53:28 +0000 |
| commit | d4dea4bbe7c61311f91d408f2ba0eab3fa1d7de6 (patch) | |
| tree | f6120e5215b8a1b29930666c191c3f1b7407fb78 | |
| parent | 0b168815a46bd8132871b909405bf15f12a5438c (diff) | |
| parent | 92111dcc67a4f19c6a6e8f22633b2f88f64ed6bb (diff) | |
| download | rust-d4dea4bbe7c61311f91d408f2ba0eab3fa1d7de6.tar.gz rust-d4dea4bbe7c61311f91d408f2ba0eab3fa1d7de6.zip | |
Fix false positive in useless_attribute with redundant_imports (#15318)
Fix false positive in `useless_attribute` with `redundant_imports` Add `redundant_imports` to the list of allowed lints on use items to prevent `useless_attribute` from triggering false positives when `#[expect(redundant_imports)]` or similar attributes are used on use statements. fixes rust-lang/rust-clippy#15316 --- changelog: [`useless_attribute`]: fix false positive when using `#[expect(redundant_imports)]` and similar lint attributes on `use` statements
| -rw-r--r-- | clippy_lints/src/attrs/useless_attribute.rs | 1 | ||||
| -rw-r--r-- | clippy_utils/src/sym.rs | 1 | ||||
| -rw-r--r-- | tests/ui/useless_attribute.fixed | 12 | ||||
| -rw-r--r-- | tests/ui/useless_attribute.rs | 12 |
4 files changed, 26 insertions, 0 deletions
diff --git a/clippy_lints/src/attrs/useless_attribute.rs b/clippy_lints/src/attrs/useless_attribute.rs index 4059f9603c3..b9b5cedb5aa 100644 --- a/clippy_lints/src/attrs/useless_attribute.rs +++ b/clippy_lints/src/attrs/useless_attribute.rs @@ -36,6 +36,7 @@ pub(super) fn check(cx: &EarlyContext<'_>, item: &Item, attrs: &[Attribute]) { | sym::unused_braces | sym::unused_import_braces | sym::unused_imports + | sym::redundant_imports ) { return; diff --git a/clippy_utils/src/sym.rs b/clippy_utils/src/sym.rs index 8a8218c6976..eee2cef2aaf 100644 --- a/clippy_utils/src/sym.rs +++ b/clippy_utils/src/sym.rs @@ -261,6 +261,7 @@ generate! { read_to_end, read_to_string, read_unaligned, + redundant_imports, redundant_pub_crate, regex, rem_euclid, diff --git a/tests/ui/useless_attribute.fixed b/tests/ui/useless_attribute.fixed index a96c8f46f55..830aa3c976f 100644 --- a/tests/ui/useless_attribute.fixed +++ b/tests/ui/useless_attribute.fixed @@ -146,3 +146,15 @@ pub mod unknown_namespace { #[allow(rustc::non_glob_import_of_type_ir_inherent)] use some_module::SomeType; } + +// Regression test for https://github.com/rust-lang/rust-clippy/issues/15316 +pub mod redundant_imports_issue { + macro_rules! empty { + () => {}; + } + + #[expect(redundant_imports)] + pub(crate) use empty; + + empty!(); +} diff --git a/tests/ui/useless_attribute.rs b/tests/ui/useless_attribute.rs index b26410134bb..14c69ccf2ed 100644 --- a/tests/ui/useless_attribute.rs +++ b/tests/ui/useless_attribute.rs @@ -146,3 +146,15 @@ pub mod unknown_namespace { #[allow(rustc::non_glob_import_of_type_ir_inherent)] use some_module::SomeType; } + +// Regression test for https://github.com/rust-lang/rust-clippy/issues/15316 +pub mod redundant_imports_issue { + macro_rules! empty { + () => {}; + } + + #[expect(redundant_imports)] + pub(crate) use empty; + + empty!(); +} |
