-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Seal all extension traits #81213
Seal all extension traits #81213
Conversation
@bors try |
⌛ Trying commit 00cf2c5952e971ce1a799540f16c5762065a0673 with merge 710510d996d140cdc77887403b52d8ddbbf33bbe... |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
This also marks it as unstable, as it should never be used outside std.
With cfg(doc), both the windows and unix implementations were included, which conflicts. This moves the implementation to the file that defines the type.
Well that's a first data point. We can't seal Un-sealing that trait and trying again.. :) |
@bors try |
⌛ Trying commit 229c004 with merge 82acd1d76add2232e19c1f0feb250d2a19ec6efe... |
☀️ Try build successful - checks-actions |
1 similar comment
☀️ Try build successful - checks-actions |
Uh, thanks bors, once was enough. (: |
@craterbot check |
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🎉 Experiment
|
Results:
*outdated: 0.11 is the latest, which does not implement any of these traits. So, sealing these didn't cause any problems:
Sealing these only causes problems on an older version of one crate:
Sealing the others causes bigger problems. |
Does this PR need an assignee? It seems like highfive conked out again and didn't assign one. |
I do this on purpose for experimental PRs. Should I assign myself instead? |
Ah, you edited the PR description to remove No need to assign yourself; maybe just add |
Seal the CommandExt, OsStrExt and OsStringExt traits A crater run (rust-lang#81213 (comment)) has shown that this does not break any existing code. This also unblocks rust-lang#77728. Based on rust-lang#81213. r? ``@m-ou-se`` cc ``@lygstate``
Seal `MetadataExt` on all platforms The Windows flavour of [`MetadataExt`](https://doc.rust-lang.org/std/os/windows/fs/trait.MetadataExt.html) is currently unimplementable on stable because of unstable methods. Therefore anyone making a cross-platform library that implements `MetadataExt` will fail on Windows. So let's see if we can seal it for all platforms. [Last time this was tried](rust-lang#81213 (comment)), sealing `MetadataExt` only caused a problem for one old version of one crate.
This seals all extension traits, to make sure we can add new methods to them in the future without breaking anything.
(
ExitStatusExt
was already sealed a few days ago by #79982.)This needs a crater run. See #80634.
cc @SimonSapin @camelid