diff options
| author | Nick Mathewson <nickm@torproject.org> | 2021-12-31 23:39:40 -0500 |
|---|---|---|
| committer | Nick Mathewson <nickm@torproject.org> | 2021-12-31 23:39:40 -0500 |
| commit | 3d41358a554cb70e23e001f6ac92cf79d805b671 (patch) | |
| tree | d1f9ff6e249419ea76c29190895b493353a1311b /tests/mir-opt/lower_array_len.array_bound.NormalizeArrayLen.panic-abort.diff | |
| parent | c736a63123ba7aa2c1d2352a874d8e79a101224f (diff) | |
| download | rust-3d41358a554cb70e23e001f6ac92cf79d805b671.tar.gz rust-3d41358a554cb70e23e001f6ac92cf79d805b671.zip | |
wrong_self_convention: Match `SelfKind::No` more restrictively
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<Self>, 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
Diffstat (limited to 'tests/mir-opt/lower_array_len.array_bound.NormalizeArrayLen.panic-abort.diff')
0 files changed, 0 insertions, 0 deletions
