| #![warn(clippy::self_named_constructors)] | |
| struct ShouldSpawn; | |
| struct ShouldNotSpawn; | |
| impl ShouldSpawn { | |
| pub fn should_spawn() -> ShouldSpawn { | |
| //~^ self_named_constructors | |
| ShouldSpawn | |
| } | |
| fn should_not_spawn() -> ShouldNotSpawn { | |
| ShouldNotSpawn | |
| } | |
| } | |
| impl ShouldNotSpawn { | |
| pub fn new() -> ShouldNotSpawn { | |
| ShouldNotSpawn | |
| } | |
| } | |
| struct ShouldNotSpawnWithTrait; | |
| trait ShouldNotSpawnTrait { | |
| type Item; | |
| } | |
| impl ShouldNotSpawnTrait for ShouldNotSpawnWithTrait { | |
| type Item = Self; | |
| } | |
| impl ShouldNotSpawnWithTrait { | |
| pub fn should_not_spawn_with_trait() -> impl ShouldNotSpawnTrait<Item = Self> { | |
| ShouldNotSpawnWithTrait | |
| } | |
| } | |
| // Same trait name and same type name should not spawn the lint | |
| #[derive(Default)] | |
| pub struct Default; | |
| trait TraitSameTypeName { | |
| fn should_not_spawn() -> Self; | |
| } | |
| impl TraitSameTypeName for ShouldNotSpawn { | |
| fn should_not_spawn() -> Self { | |
| ShouldNotSpawn | |
| } | |
| } | |
| struct SelfMethodShouldNotSpawn; | |
| impl SelfMethodShouldNotSpawn { | |
| fn self_method_should_not_spawn(self) -> Self { | |
| SelfMethodShouldNotSpawn | |
| } | |
| } | |
| fn main() {} |