-
-
Notifications
You must be signed in to change notification settings - Fork 14.5k
Closed
Description
There are hidden assumptions around Borrow that don’t appear to be included in any of the documentation that I can find. Most notably, HashMap’s use of Borrow requires that K and Q (where K: Borrow<Q>) hash the same; if they don’t, your HashMap will be mysteriously broken when you try indexing it by Q.
I’d suggest making Borrow an unsafe trait, but unsafe doesn’t mean blah blah mumble mumble memory safety mumble 😛
Anyway, we need some serious warnings on at least the Borrow documentation. Something including things like “if you are implementing Borrow and both Self and Borrowed implement Hash, they must produce the same result, for HashMap’s sake.”
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels