Skip to content
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

Disallow future-incompatibility lints in the 2024 edition #117921

Open
tmandry opened this issue Nov 15, 2023 · 1 comment
Open

Disallow future-incompatibility lints in the 2024 edition #117921

tmandry opened this issue Nov 15, 2023 · 1 comment
Labels
A-lint Area: Lints (warnings about flaws in source code) such as unused_mut. A-maybe-future-edition Something we may consider for a future edition. C-discussion Category: Discussion or questions that doesn't represent real issues. T-lang Relevant to the language team, which will review and decide on the PR/issue.

Comments

@tmandry
Copy link
Member

tmandry commented Nov 15, 2023

We have quite a long list of future-incompatibility lints that are waiting to be made into hard errors. The lints are so severe that we warn even when they are used by a dependency of the crate being built, because they will cause the crate to stop compiling at some point in the future.

We could use the edition as an impetus to switch some or all of these lints over to hard errors (or deny-by-default lints). Note that because of the way editions work this would only affect the crate being upgraded, not its dependencies. This would mean pairing the carrot with the stick, so to speak; if any of the crates triggering these errors are upgraded to the edition they will also need to have their future-incompat issues fixed. It also means that new code (using the latest edition) won't be written that triggers these lints.

On the other hand it's unlikely that the crates with future-incompat issues are being maintained in the first place, so this wouldn't do much to help the problem.

Opening this issue for discussion and consideration by the lang team.

For some background on how we handled this in past editions, see #80165 (comment).

@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Nov 15, 2023
@tmandry tmandry added A-lint Area: Lints (warnings about flaws in source code) such as unused_mut. T-lang Relevant to the language team, which will review and decide on the PR/issue. A-maybe-future-edition Something we may consider for a future edition. C-discussion Category: Discussion or questions that doesn't represent real issues. needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. I-lang-nominated Nominated for discussion during a lang team meeting. and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Nov 15, 2023
@tmandry tmandry changed the title Disallow future-incompatibility lints in the next edition Disallow future-incompatibility lints in the 2024 edition Nov 15, 2023
@tmandry
Copy link
Member Author

tmandry commented Nov 16, 2023

Discussed in yesterday's lang team meeting; the consensus was that we would consider moving the lints to breaking errors in logical batches or individually, but not as one group.

@traviscross traviscross removed the I-lang-nominated Nominated for discussion during a lang team meeting. label Nov 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-lint Area: Lints (warnings about flaws in source code) such as unused_mut. A-maybe-future-edition Something we may consider for a future edition. C-discussion Category: Discussion or questions that doesn't represent real issues. T-lang Relevant to the language team, which will review and decide on the PR/issue.
Projects
Status: Idea
Development

No branches or pull requests

3 participants