-
Notifications
You must be signed in to change notification settings - Fork 13.3k
regression: int_roundings conflicts with existing APIs #88971
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
This may be a nitpick on what is defined as a root cause, but |
I know it's not a blame game or anything, but I think the distinction matters when considering how many places have to be fixed to deal with this change. |
Yeah, unfortunately, with this scope of breakage the number of root causes may not be terribly important -- many of those need somewhat manual intervention for the .lock bumps, in practice, which can take time. |
These are unstable methods, so can we come up with reasonable names to rename them to, knowing that we don't have to commit to those names long-term if we come up with better ones before stabilization? |
Conclusion from the libs-api meeting: let's temporarily rename these to something non-conflicting that we know we don't want to use long-term; for instance, let's prefix them with |
Discussed in the libs-api meeting. We'll rename them for now and beta-backport that. |
Race condition. |
Long-term fix:
|
Try all stable method candidates first before trying unstable ones Currently we try methods in this order in each step: * Stable by value * Unstable by value * Stable autoref * Unstable autoref * ... This PR changes it to first try pick methods without any unstable candidates, and if none is found, try again to pick unstable ones. Fix rust-lang#90320 CC rust-lang#88971, hopefully would allow us to rename the "unstable_*" methods for integer impls back. `@rustbot` label T-compiler T-libs-api
Crater run for 1.56 detected a considerable amount of breakage due to int_roundings on nightly. We have some support in the compiler to avoid stable breakage due to unstable features, but it does not work for this case (@cuviper theorized this is due to "the self inherent method is resolved before the &self trait method is considered at all."
There are:
This is a level of breakage significant enough that it seems prudent to back this out or rename the functions, to avoid breaking a good portion of the ecosystem.
cc:
int_roundings
#88581The text was updated successfully, but these errors were encountered: