cfg in file modules is not handled correctly
Open
Nobody has claimed this yet.
bug
- Dominant language
- C++
- Stars
- 2.9k
- Forks
- 231
- Avg merge
- 19h 55m
- Merged PRs (30d)
- 67
Description
// a.rs
#[path = "b.rs"]
mod module;
// b.rs
#[cfg(a)]
mod submod {}
#[cfg(not(a))]
mod submod {}
I expected to see this happen: compiles
Instead, this happened: error
./b.rs:5:1: error: redefined multiple times
2 | mod submod {}
| ~~~
......
5 | mod submod {}
| ^~~
Meta
- What version of Rust GCC were you using, git sha if possible. 3d2a0c0445c2a1417dcc290b7a14e551c14fa421
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
Reproduce the issue using the a.rs and b.rs examples with Rust GCC commit 3d2a0c0445c2a1417dcc290b7a14e551c14fa421. Trace how the #[path] module and its #[cfg] declarations are processed; done means the example compiles without reporting submod as redefined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100