rust-lang / rust-lang/rust-clippy
Serde: duplicate field in base struct and flattened struct
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
What it does
Warns when a conflicting field name is present in both a struct and in a flattened field.
I open an issue in the serde repo https://github.com/serde-rs/serde/issues/1820 and they suggested me to open it here
Categories (optional)
- Kind: Not sure
Avoid uncertainty about which field will be the one becoming serialized
Example
pub struct Base {
#[serde(flatten)]
pub flattened: Option<Flattened>,
pub name: String,
}
pub struct Flattened {
pub name: String,
}
Could issue a clippy warning suggesting to delete one of the fields named name or rename.
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
Start from the Rust example in this issue and review how serde flattening creates a conflict between the base and flattened structs. Determine the intended warning when both contain a field named name, and consider the suggested remedies of deleting or renaming one field. Done means the conflict is detected and the warning clearly identifies the duplicate field.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100