#![warn(clippy::from_over_into)] struct InMacro(String); macro_rules! in_macro { () => { Self::new() }; } impl Into<InMacro> for String { //~^ ERROR: an implementation of `From` is preferred since it gives you `Into<_>` for free fn into(self) -> InMacro { InMacro(in_macro!()) } } struct WeirdUpperSelf; impl Into<WeirdUpperSelf> for &'static [u8] { //~^ ERROR: an implementation of `From` is preferred since it gives you `Into<_>` for free fn into(self) -> WeirdUpperSelf { let _ = Self::default(); WeirdUpperSelf } } struct ContainsVal; impl Into<u8> for ContainsVal { //~^ ERROR: an implementation of `From` is preferred since it gives you `Into<_>` for free fn into(self) -> u8 { let val = 1; val + 1 } } pub struct Lval<T>(T); pub struct Rval<T>(T); impl<T> Into<Rval<Self>> for Lval<T> { //~^ ERROR: an implementation of `From` is preferred since it gives you `Into<_>` for free fn into(self) -> Rval<Self> { Rval(self) } } fn main() {}