-
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
regression: int_roundings conflicts with existing APIs #88971
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: