Skip to content
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

Merged
merged 1 commit into from
Jan 29, 2023
Merged

Implement signum with Ord #106798

merged 1 commit into from
Jan 29, 2023

Conversation

scottmcm
Copy link
Member

Rather than needing to do things like #105840 for signum too, might as well just implement that method using Ord, since it's doing the same "I need -1/0/+1" behaviour that cmp is already doing.

This also seems to slightly improve the assembly: https://rust.godbolt.org/z/5oEEqbxK1

@rustbot
Copy link
Collaborator

rustbot commented Jan 13, 2023

r? @joshtriplett

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 13, 2023
@rustbot

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 _
Copy link
Member Author

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.)

@scottmcm
Copy link
Member Author

2-week reroll to hopefully get a less-busy reviewer:
r? libs

@Mark-Simulacrum
Copy link
Member

@bors r+

@bors
Copy link
Collaborator

bors commented Jan 29, 2023

📌 Commit fcbc12e has been approved by Mark-Simulacrum

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 29, 2023
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 29, 2023
…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
@bors bors merged commit 782da86 into rust-lang:master Jan 29, 2023
@rustbot rustbot added this to the 1.69.0 milestone Jan 29, 2023
@scottmcm scottmcm deleted the signum-via-cmp branch January 30, 2023 00:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants