| #![warn(clippy::wrong_self_convention)] | |
| #![allow(dead_code)] | |
| fn main() {} | |
| mod issue6983 { | |
| pub struct Thing; | |
| pub trait Trait { | |
| fn to_thing(&self) -> Thing; | |
| } | |
| impl Trait for u8 { | |
| // don't trigger, e.g. `ToString` from `std` requires `&self` | |
| fn to_thing(&self) -> Thing { | |
| Thing | |
| } | |
| } | |
| trait ToU64 { | |
| fn to_u64(self) -> u64; | |
| } | |
| struct FooNoCopy; | |
| // don't trigger | |
| impl ToU64 for FooNoCopy { | |
| fn to_u64(self) -> u64 { | |
| 2 | |
| } | |
| } | |
| } | |
| mod issue7032 { | |
| trait Foo { | |
| fn from_usize(x: usize) -> Self; | |
| } | |
| // don't trigger | |
| impl Foo for usize { | |
| fn from_usize(x: usize) -> Self { | |
| x | |
| } | |
| } | |
| } | |
| mod issue7179 { | |
| pub struct S(i32); | |
| impl S { | |
| // don't trigger (`s` is not `self`) | |
| pub fn from_be(s: Self) -> Self { | |
| S(i32::from_be(s.0)) | |
| } | |
| // lint | |
| pub fn from_be_self(self) -> Self { | |
| //~^ wrong_self_convention | |
| S(i32::from_be(self.0)) | |
| } | |
| } | |
| trait T { | |
| // don't trigger (`s` is not `self`) | |
| fn from_be(s: Self) -> Self; | |
| // lint | |
| fn from_be_self(self) -> Self; | |
| //~^ wrong_self_convention | |
| } | |
| trait Foo: Sized { | |
| fn as_byte_slice(slice: &[Self]) -> &[u8]; | |
| } | |
| } | |
| mod issue3414 { | |
| struct CellLikeThing<T>(T); | |
| impl<T> CellLikeThing<T> { | |
| // don't trigger | |
| fn into_inner(this: Self) -> T { | |
| this.0 | |
| } | |
| } | |
| impl<T> std::ops::Deref for CellLikeThing<T> { | |
| type Target = T; | |
| fn deref(&self) -> &T { | |
| &self.0 | |
| } | |
| } | |
| } | |
| // don't trigger | |
| mod issue4546 { | |
| use std::pin::Pin; | |
| struct S; | |
| impl S { | |
| pub fn as_mut(self: Pin<&mut Self>) {} | |
| pub fn as_other_thingy(self: Pin<&Self>) {} | |
| pub fn is_other_thingy(self: Pin<&Self>) {} | |
| pub fn to_mut(self: Pin<&mut Self>) {} | |
| pub fn to_other_thingy(self: Pin<&Self>) {} | |
| } | |
| } | |
| mod issue_8480_8513 { | |
| struct Cat(String); | |
| impl Cat { | |
| fn is_animal(&mut self) -> bool { | |
| todo!(); | |
| } | |
| } | |
| } |