Identifier variant of enum incorrectly triggers duplicate identifier binding error
Open
Nobody has claimed this yet.
name resolution
typechecking
- Dominant language
- C++
- Stars
- 2.9k
- Forks
- 231
- Avg merge
- 20h 2m
- Merged PRs (30d)
- 66
Description
#![feature(no_core)]
#![feature(lang_items)]
#![feature(rustc_attrs)]
#![no_core]
enum Option {
Some,
None,
}
fn test_match(a: Option, b: Option) {
match (a, b) {
(None, None) => {}
_ => {}
}
}
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 compiling the Rust reproducer in the issue and observe the duplicate identifier binding diagnostic for the enum variant pattern. Trace the gccrs compiler path handling this match pattern; done means the shown program no longer incorrectly reports a duplicate binding error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100