10

wrong_self_convention: Match `SelfKind::No` more restrictively by nmathewson · P...

 2 years ago
source link: https://github.com/rust-lang/rust-clippy/pull/8208
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Copy link

Contributor

nmathewson commented 16 days ago

The wrong_self_convention lint uses a SelfKind type to decide
whether a method has the right kind of "self" for its name, or whether
the kind of "self" it has makes its name confusable for a method in
a common trait. One possibility is SelfKind::No, which is supposed
to mean "No self".

Previously, SelfKind::No matched everything except Self, including
references to Self. This patch changes it to match Self, &Self, &mut
Self, Box, and so on.

For example, this kind of method was allowed before:

impl S {
    // Should trigger the lint, because
    // "methods called `is_*` usually take `self` by reference or no `self`"
    fn is_foo(&mut self) -> bool { todo!() }
}

But since SelfKind::No matched "&mut self", no lint was triggered
(see #8142).

With this patch, the code above now gives a lint as expected.

fixes #8142

changelog: [wrong_self_convention] rejects self references in more cases


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK