2 Checks for `new` not returning a type that contains `Self`.
5 As a convention, `new` methods are used to make a new
20 // Bad. The type name must contain `Self`
28 // Good. Return type contains `Self`
29 fn new() -> Result<Foo, FooError> {
34 Or in a trait definition:
37 // Bad. The type name must contain `Self`
44 // Good. Return type contains `Self`