-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make ptr::eq
documentation mention fat-pointer behavior
#59390
Conversation
r? @Kimundi (rust_highfive has picked a reviewer for you, use r? to override) |
I'm pretty sure this is incorrect. The difference is that fat pointers (not smart pointers) compare their metadata in addition to the pointer address (no value comparison is done either, there is no Eq / PartialEq trait bound). |
Yes, I agree with @CryZe |
What do you mean by a fat pointer? Why is smart pointer wrong? The three example smart pointers I listed compare by value. They use compare by address only as an optimization when the type implements Eq according to reading the source code. |
Googled fat pointers:
|
KK so the issue is wrong. I'll fix this. Thanks guys |
Should we be adding a method that compares pointers by purely memory address without comparing metadata? |
ptr::eq
documentation mention smart-pointer behaviorptr::eq
documentation mention fat-pointer behavior
@bors: r+ rollup thank you! |
📌 Commit fbfc808 has been approved by |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We shouldn't be using Trait
instead of dyn Trait
anymore in the standard library.
@bors r- |
KK @Centril done |
r=me,steveklabnik with green travis |
@bors r=Centril,steveklabnik rollup |
📌 Commit 61b6c56 has been approved by |
…ntril,steveklabnik Make `ptr::eq` documentation mention fat-pointer behavior Resolves rust-lang#59214
Rollup of 18 pull requests Successful merges: - #57293 (Make some lints incremental) - #57565 (syntax: Remove warning for unnecessary path disambiguators) - #58253 (librustc_driver => 2018) - #58837 (librustc_interface => 2018) - #59268 (Add suggestion to use `&*var` when `&str: From<String>` is expected) - #59283 (Make ASCII case conversions more than 4× faster) - #59284 (adjust MaybeUninit API to discussions) - #59372 (add rustfix-able suggestions to trim_{left,right} deprecations) - #59390 (Make `ptr::eq` documentation mention fat-pointer behavior) - #59393 (Refactor tuple comparison tests) - #59420 ([CI] record docker image info for reuse) - #59421 (Reject integer suffix when tuple indexing) - #59430 (Renames `EvalContext` to `InterpretCx`) - #59439 (Generalize diagnostic for `x = y` where `bool` is the expected type) - #59449 (fix: Make incremental artifact deletion more robust) - #59451 (Add `Default` to `std::alloc::System`) - #59459 (Add some tests) - #59460 (Include id in Thread's Debug implementation) Failed merges: r? @ghost
Resolves #59214