mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-29 20:46:07 +03:00
Auto merge of #5448 - Emerentius:update_new_ret_no_self_docs, r=phansch
Update documentation for new_ret_no_self changelog: Update documentation for lint new_ret_no_self to reflect that the return type must only contain `Self`, not be `Self` The lint was changed to be more lenient than the documentation implies in PR #3338 (Related issue #3313)
This commit is contained in:
@@ -730,7 +730,7 @@
|
||||
}
|
||||
|
||||
declare_clippy_lint! {
|
||||
/// **What it does:** Checks for `new` not returning `Self`.
|
||||
/// **What it does:** Checks for `new` not returning a type that contains `Self`.
|
||||
///
|
||||
/// **Why is this bad?** As a convention, `new` methods are used to make a new
|
||||
/// instance of a type.
|
||||
@@ -747,9 +747,31 @@
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// ```rust
|
||||
/// # struct Foo;
|
||||
/// # struct FooError;
|
||||
/// impl Foo {
|
||||
/// // Good. Return type contains `Self`
|
||||
/// fn new() -> Result<Foo, FooError> {
|
||||
/// # Ok(Foo)
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// ```rust
|
||||
/// # struct Foo;
|
||||
/// struct Bar(Foo);
|
||||
/// impl Foo {
|
||||
/// // Bad. The type name must contain `Self`.
|
||||
/// fn new() -> Bar {
|
||||
/// # Bar(Foo)
|
||||
/// }
|
||||
/// }
|
||||
/// ```
|
||||
pub NEW_RET_NO_SELF,
|
||||
style,
|
||||
"not returning `Self` in a `new` method"
|
||||
"not returning type containing `Self` in a `new` method"
|
||||
}
|
||||
|
||||
declare_clippy_lint! {
|
||||
|
||||
+1
-1
@@ -1448,7 +1448,7 @@
|
||||
Lint {
|
||||
name: "new_ret_no_self",
|
||||
group: "style",
|
||||
desc: "not returning `Self` in a `new` method",
|
||||
desc: "not returning type containing `Self` in a `new` method",
|
||||
deprecation: None,
|
||||
module: "methods",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user