rust-lang / rust-lang/hashbrown
Possible bug in v0.10 with lookups on Box<[u8]>
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3k
- Forks
- 358
- Avg merge
- 11h 57m
- Merged PRs (30d)
- 2
Description
The following code exits cleanly using hashbrown 0.9.1, but fails on hashbrown 0.10
use hashbrown::HashSet;
fn main() {
let mut m = HashSet::<Box<[u8]>>::new();
m.insert(Box::from(&b"hello"[..]));
assert!(m.contains(&b"hello"[..]));
}
Lookup of a &Box<[u8]> seems to work fine; the issue happens when calling get with a &[u8] on a HashSet<Box<[u8]>>. I've seen similar behavior with HashMaps
Contributor guide
No contributing guide indexed for this repository
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 with the supplied Rust reproducer and compare HashSet<Box<[u8]>> lookup behavior between hashbrown 0.9.1 and 0.10, focusing on contains and get with &[u8]. Done means lookups by &[u8] behave correctly and the regression is covered by an appropriate test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100