microsoft / microsoft/windows-rs
`windows-rdl` duplicate symbols
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 12.8k
- Forks
- 665
- Avg merge
- 7h 9m
- Merged PRs (30d)
- 70
Description
Issue copied from #4163 to create a dedicated issue.
There's another unrelated yet prevalent issue that's probably not exclusive to properties: Symbols can be repeated within the same scope. Consider the following RDL
```
#[winrt]
mod Test {
interface ITest {
foo: u32;
foo: u32;
}
}
```
This round-trips perfectly and makes for a valid interface description in terms of the ABI.
The challenge is that while this particular case is not valid and should be avoided, there are other cases where duplicate symbols make sense. Interface method overloads and arch-specific type/method/struct/const overloads to name a few.
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 by reproducing the duplicate `foo` members in the `windows-rdl` example and trace the round-trip path that accepts them. Compare that behavior with interface method overloads and architecture-specific overloads described in the issue. Done means duplicate symbols are handled appropriately without rejecting valid overload cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100