### What it does Detects cases where a parameterless `new` simply calls `Default::default`, and indicates that `default` should call new, rather than the opposite. ### Advantage `new` functions can potentially be `const`, while `default` cannot, and calling them in the opposite order can prohibit this. ### Drawbacks The lint is completely irrelevant if the `new` function is never intended to be `const`. ### Example ```rust pub struct Config; impl Default for Config { fn default() -> Self { Self } } impl Config { pub fn new() -> Self { Self::default() } } ``` Could be written as: ```rust pub struct Config; impl Default for Config { fn default() -> Self { Self::new() } } impl Config { pub fn new() -> Self { Self } } ```