### What it does Checks for the definition of inherent methods with a signature of `to_string(&self) -> String` and if the type implementing this method also implements the `Display` trait. ### Why is this bad? This method is also implicitly defined if a type implements the `Display` trait. The less versatile inherent method will then shadow the implementation introduced by `Display`. ### Example ``` use std::fmt; pub struct A; impl A { pub fn to_string(&self) -> String { "I am A".to_string() } } impl fmt::Display for A { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "I am A, too") } } ``` Use instead: ``` use std::fmt; pub struct A; impl fmt::Display for A { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "I am A") } } ```