2023-04-20 14:37:15 +00:00
|
|
|
//@compile-flags: --test
|
2019-04-19 10:53:03 +00:00
|
|
|
|
2018-12-17 13:29:19 +00:00
|
|
|
#![warn(clippy::module_name_repetitions)]
|
2016-09-13 08:20:10 +00:00
|
|
|
#![allow(dead_code)]
|
|
|
|
|
2024-09-23 18:58:28 +00:00
|
|
|
pub mod foo {
|
2016-09-13 08:20:10 +00:00
|
|
|
pub fn foo() {}
|
2017-02-08 13:58:07 +00:00
|
|
|
pub fn foo_bar() {}
|
2023-07-28 19:35:48 +00:00
|
|
|
//~^ ERROR: item name starts with its containing module's name
|
|
|
|
//~| NOTE: `-D clippy::module-name-repetitions` implied by `-D warnings`
|
2017-02-08 13:58:07 +00:00
|
|
|
pub fn bar_foo() {}
|
2023-07-28 19:35:48 +00:00
|
|
|
//~^ ERROR: item name ends with its containing module's name
|
2022-03-27 12:41:09 +00:00
|
|
|
pub struct FooCake;
|
2023-07-28 19:35:48 +00:00
|
|
|
//~^ ERROR: item name starts with its containing module's name
|
2017-02-08 13:58:07 +00:00
|
|
|
pub enum CakeFoo {}
|
2023-07-28 19:35:48 +00:00
|
|
|
//~^ ERROR: item name ends with its containing module's name
|
2017-11-26 17:57:34 +00:00
|
|
|
pub struct Foo7Bar;
|
2023-07-28 19:35:48 +00:00
|
|
|
//~^ ERROR: item name starts with its containing module's name
|
2017-11-26 17:57:34 +00:00
|
|
|
|
|
|
|
// Should not warn
|
|
|
|
pub struct Foobar;
|
2024-03-27 11:58:26 +00:00
|
|
|
|
2024-09-23 18:58:28 +00:00
|
|
|
// #8524 - shouldn't warn when item is declared in a private module...
|
|
|
|
mod error {
|
|
|
|
pub struct Error;
|
|
|
|
pub struct FooError;
|
|
|
|
}
|
|
|
|
pub use error::Error;
|
|
|
|
// ... but should still warn when the item is reexported to create a *public* path with repetition.
|
|
|
|
pub use error::FooError;
|
|
|
|
//~^ ERROR: item name starts with its containing module's name
|
|
|
|
|
|
|
|
// FIXME: This should also warn because it creates the public path `foo::FooIter`.
|
|
|
|
mod iter {
|
|
|
|
pub struct FooIter;
|
|
|
|
}
|
|
|
|
pub use iter::*;
|
|
|
|
|
2024-03-27 11:58:26 +00:00
|
|
|
// #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 {}
|
2016-09-13 08:20:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|