microsoft / microsoft/windows-rs

`windows-rdl` duplicate symbols

Open
#4,186 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.