-
Notifications
You must be signed in to change notification settings - Fork 13.3k
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
Implement signum
with Ord
#106798
Implement signum
with Ord
#106798
Conversation
(rustbot has picked a reviewer for you, use r? to override) |
This comment was marked as resolved.
This comment was marked as resolved.
// (<https://graphics.stanford.edu/~seander/bithacks.html#CopyIntegerSign>) | ||
// so delegate it to `Ord` which is already producing -1/0/+1 | ||
// exactly like we need and can be the place to deal with the complexity. | ||
self.cmp(&0) as _ |
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.
It's of course not a big deal, but self <=> 0
does feel nicer to me here than needing &0
and autoref.
(Just mentioning it, @joshtriplett, since I'd brought up spaceship in the meeting today. Obviously it's not a blocker for this PR.)
2-week reroll to hopefully get a less-busy reviewer: |
@bors r+ |
…iaskrgr Rollup of 11 pull requests Successful merges: - rust-lang#96763 (Fix maintainer validation message) - rust-lang#106540 (Insert whitespace to avoid ident concatenation in suggestion) - rust-lang#106763 (print why a test was ignored if its the only test specified) - rust-lang#106769 (libtest: Print why a test was ignored if it's the only test specified.) - rust-lang#106798 (Implement `signum` with `Ord`) - rust-lang#107006 (Output tree representation on thir-tree) - rust-lang#107078 (Update wording of invalid_doc_attributes docs.) - rust-lang#107169 (Pass `--locked` to the x test tidy call) - rust-lang#107431 (docs: remove colon from time header) - rust-lang#107432 (rustdoc: remove unused class `has-srclink`) - rust-lang#107448 (When stamp doesn't exist, should say Error, and print path to stamp file) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Rather than needing to do things like #105840 for
signum
too, might as well just implement that method usingOrd
, since it's doing the same "I need-1
/0
/+1
" behaviour thatcmp
is already doing.This also seems to slightly improve the assembly: https://rust.godbolt.org/z/5oEEqbxK1