Restriction, no import of associated items, is not documented
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 48/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- rust
- Domain
- documentation
Research direction
Start with the Rust Reference's Use declarations under Items and compare its wording with the restriction shown by the rocket::http::Status::* example. Check the linked rust-lang/rust#24915 and related discussion for the established behavior; done when the Reference explicitly explains that associated items cannot be imported this way.
Written by the indexing model from the issue text.
Description
Hi. I was using a crate which had a struct with a number of associated items and I was trying to save typing in an error handling function. But:
12 | use rocket::http::Status::*;
| ^^^^^^ `Status` is a struct, not a module
I looked in the Reference and I wasn't able to find any discussion of this. In particular, I would expect it to be documented in the explanation of Use declarations under Items.
After considerably more digging, I found:
- https://github.com/rust-lang/rust/issues/24915, a closed issue where the resolution was that this is not expected to work
- https://internals.rust-lang.org/t/importing-associated-constants/6610/5, a discussion about how to maybe implement this (although it seems unlikely that that approach could work for the glob import I was trying...)
It would be nice if this restriction were documented. See also https://github.com/rust-lang/rust/issues/74030 where I suggest that a better error message would be nice. Thanks.
- Dominant language
- Rust
- Stars
- 1.6k
- Forks
- 607
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 12
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.
More from rust-lang/reference
-
A-const-eval A-undefined-behavior
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
A-resolve
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
-
A-coercions
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
All issues in rust-lang/reference
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100