-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Add the future edition #15595
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
Add the future edition #15595
Conversation
r? @weihanglo rustbot has assigned @weihanglo. Use |
src/cargo/core/features.rs
Outdated
]; | ||
/// Possible values allowed for the `--edition` CLI flag. | ||
/// | ||
/// This requires a static value due to the way clap works, otherwise I | ||
/// would have built this dynamically. | ||
/// | ||
/// This does not include `future` since we don't need to create new | ||
/// projects with it. |
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.
nit: we use packages 📦 right?
/// projects with it. | |
/// packages with it. |
src/cargo/core/features.rs
Outdated
/// Allows use of editions that are not yet stable. | ||
(unstable, unstable_edition, "", "reference/unstable.html#unstable-edition"), |
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.
/// Allows use of editions that are not yet stable. | |
(unstable, unstable_edition, "", "reference/unstable.html#unstable-edition"), | |
/// Allows use of editions that are not yet stable. | |
(unstable, unstable_editions, "", "reference/unstable.html#unstable-editions"), |
Perhaps it'd be better to name this in the plural. When there is an unstable numbered edition, this will be allowing that as well as the future edition. And generally, at least on the rustc
side, we prefer to name feature flags in the plural.
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.
Sure! My thinking was that there is only ever one edition allowed in a manifest, but I'm fine either way.
This adds support for the "future" edition which was added to rustc in rust-lang/rust#137606. To enable support for unstable editions, this introduces a new `unstable-editions` cargo feature. The intent is that instead of having a new feature for each edition that we reuse this feature for all new editions. I don't see a particular reason we should have a separate one for each edition, and this helps a bit with scalability and simplifies some of the edition process. This also includes a change to rework `supports_compat_lint` explained in the comment.
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.
Thanks!
Update cargo 12 commits in 68db37499f2de8acef704c73d9031be6fbcbaee4..64a12460708cf146e16cc61f28aba5dc2463bbb4 2025-05-22 14:27:15 +0000 to 2025-05-30 18:25:08 +0000 - chore: remove HTML comments and inline guide (rust-lang/cargo#15613) - Add .git-blame-ignore-revs (rust-lang/cargo#15612) - refactor: cleanup for `CompileMode` (rust-lang/cargo#15608) - refactor: separate "global" mode from CompileMode (rust-lang/cargo#15601) - fix(doc): pass `toolchain-shared-resources` to get doc styled (rust-lang/cargo#15605) - fix(embedded): Resolve multiple bugs in frontmatter parser (rust-lang/cargo#15573) - chore: Upgrade schemars (rust-lang/cargo#15602) - Update gix & socket2 (rust-lang/cargo#15600) - Add `-Zfix-edition` (rust-lang/cargo#15596) - chore(toml): disable `toml`'s default features, unless necessary (rust-lang/cargo#15598) - docs(README): fix the link to the changelog in the Cargo book (rust-lang/cargo#15597) - Add the future edition (rust-lang/cargo#15595) r? ghost
Update cargo 12 commits in 68db37499f2de8acef704c73d9031be6fbcbaee4..64a12460708cf146e16cc61f28aba5dc2463bbb4 2025-05-22 14:27:15 +0000 to 2025-05-30 18:25:08 +0000 - chore: remove HTML comments and inline guide (rust-lang/cargo#15613) - Add .git-blame-ignore-revs (rust-lang/cargo#15612) - refactor: cleanup for `CompileMode` (rust-lang/cargo#15608) - refactor: separate "global" mode from CompileMode (rust-lang/cargo#15601) - fix(doc): pass `toolchain-shared-resources` to get doc styled (rust-lang/cargo#15605) - fix(embedded): Resolve multiple bugs in frontmatter parser (rust-lang/cargo#15573) - chore: Upgrade schemars (rust-lang/cargo#15602) - Update gix & socket2 (rust-lang/cargo#15600) - Add `-Zfix-edition` (rust-lang/cargo#15596) - chore(toml): disable `toml`'s default features, unless necessary (rust-lang/cargo#15598) - docs(README): fix the link to the changelog in the Cargo book (rust-lang/cargo#15597) - Add the future edition (rust-lang/cargo#15595) r? ghost
This adds support for the "future" edition which was added to rustc in rust-lang/rust#137606.
To enable support for unstable editions, this introduces a new
unstable-editions
cargo feature. The intent is that instead of having a new feature for each edition that we reuse this feature for all new editions. I don't see a particular reason we should have a separate one for each edition, and this helps a bit with scalability and simplifies some of the edition process.This also includes a change to rework
supports_compat_lint
explained in the comment.