-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Fix an incorrect error message regarding the size of usize and isize in cast_precision_loss.
#14966
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
Conversation
|
Shouldn't we give a better error message? (and use "may cause" since on 16 bit usize platforms this is fine) For example: casting `usize` to `f32` may cause a loss of precision (`usize` can be as large as 64 bits wide depending of the target architecture, but `f32`'s mantissa is only 23 bits wide) |
|
Yes, something like that would be even better. I will look over it. @rustbot author |
|
Reminder, once the PR becomes ready for a review, use |
|
Friendly ping from triage: @SLUCHABLUB do you still plan to work on this? |
This comment has been minimized.
This comment has been minimized.
|
Lintcheck changes for a287c66
This comment will be updated if you push new changes |
|
Yes, sorry. @rustbot ready |
|
No need to apologize! I try to phrase these in a way that doesn't come off as indicting, but I don't always succeed.. |
This comment has been minimized.
This comment has been minimized.
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.
Thank you for both improving the message and simplifying the code.
|
This looks good, just needs a rebase. @rustbot author |
|
This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
It seems that the 32-bit tests are failing. Is there a way for me to run (& bless) them on my 64 bit machine? |
|
Yes, you could cross compile to x86. But I don't think we actually need to incur that complexity here. |
|
I think the 32-bit tests should pass now. @rustbot ready |
|
@SLUCHABLUB Apply the diff from https://rfc1149.pastes.sh/bless-i686.diff if you wish |
|
Could you squash your commits? Then we'll reattempt the merge. |
|
Thanks for the suggestion, I didn't see it until now so I just blessed them from a 32-bit qemu instance. Nonetheless, it should work now. Will try to squash. |
|
Sorry if this is the wrong place to ask, but where is it documented that usize will not be larger than 64 bits? There is no |
|
Whilst it in theory can have any size (greater than or equal to 16 bits), in practice (on all supported targets) it only ever goes up to 64 bits. |
When trying to cast a
usizeorisizeusingasto a type of potentially smaller size thecast_precision_losswould claim that the size ofusizeis "32 or 64 bits". It is now corrected to "16, 32, or 64 bits".changelog: [
cast_precision_loss]: fix the error messages claim regarding the size ofusizeandisize.