Handle pub(restricted) properly
Open
Nobody has claimed this yet.
enhancement
- Dominant language
- C++
- Stars
- 2.9k
- Forks
- 231
- Avg merge
- 19h 55m
- Merged PRs (30d)
- 67
Description
We need to add a visitor to allow handling of the various pub variations.
pub(restricted) is interesting as it has a direct effect on surrounding modules: You can specify that a parent module, but not its parents, is allowed to view a certain item publicly
mod a {
struct AStruct {
inner: BStruct,
}
mod b {
pub(in crate::a) struct BStruct;
}
}
So we need to figure out a way to affect an HIR node's parents properly
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 locating the visitor that handles the various pub forms and the HIR representation of parent relationships. Use the pub(in crate::a) example as a reference; done means restricted visibility affects the specified parent module without granting access to its parents.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100