rust-lang / rust-lang/rust-clippy
Lint trait impls whose body accesses `self.field` instead of `let Self { field } = self`
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
If the type is ever extended to contain more fields, the trait impl could be left behind and accidentally break the runtime behaviour. Using the let Self { field } syntax allows one to use a pattern that covers all fields (and ignores unneeded fields with field: _ explicitly).
In tandem the lint should complain about let Self { field, .. } and suggest to fill in other_field: _ patterns for the missing fields
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are named in the issue. Start by locating the lint implementation and its tests for trait implementations; done means the lint covers direct self.field access and incomplete Self patterns, with suggestions for explicit ignored fields.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100