rust-clippy/tests/ui/module_name_repetitions.rs
modelflat 3705073a71 Recognize common prefixes when checking for items with module name suffix
Fixes #12544.

- don't report an item name if it consists only of a prefix from `allowed-prefixes` list and a module name (e.g. `AsFoo` in module `foo`).
- configured by `allowed-prefixes` config entry
- prefixes allowed by default: [`to`, `from`, `into`, `as`, `try_into`, `try_from`]
- update docs
2024-04-09 09:47:54 +02:00

38 lines
1.1 KiB
Rust

//@compile-flags: --test
#![warn(clippy::module_name_repetitions)]
#![allow(dead_code)]
mod foo {
pub fn foo() {}
pub fn foo_bar() {}
//~^ ERROR: item name starts with its containing module's name
//~| NOTE: `-D clippy::module-name-repetitions` implied by `-D warnings`
pub fn bar_foo() {}
//~^ ERROR: item name ends with its containing module's name
pub struct FooCake;
//~^ ERROR: item name starts with its containing module's name
pub enum CakeFoo {}
//~^ ERROR: item name ends with its containing module's name
pub struct Foo7Bar;
//~^ ERROR: item name starts with its containing module's name
// Should not warn
pub struct Foobar;
// #12544 - shouldn't warn if item name consists only of an allowed prefix and a module name.
pub fn to_foo() {}
pub fn into_foo() {}
pub fn as_foo() {}
pub fn from_foo() {}
pub fn try_into_foo() {}
pub fn try_from_foo() {}
pub trait IntoFoo {}
pub trait ToFoo {}
pub trait AsFoo {}
pub trait FromFoo {}
pub trait TryIntoFoo {}
pub trait TryFromFoo {}
}
fn main() {}