-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Deny clashing extern declarations by default. #75192
Deny clashing extern declarations by default. #75192
Conversation
Looks good to me. @bors try |
⌛ Trying commit 40db56c with merge d85ecff64d4ec32056a636d93cc8427a25ef742d... |
⌛ Trying commit 40db56c with merge 169954edd744527414c631e9af1bbdc537b0cdf2... |
☀️ Try build successful - checks-actions, checks-azure |
@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
|
Looks like there may be some genuine regressions in there (most notably about crates using a (same? didn’t check) structure as an argument, where the structure is defined twice. Some others are genuine problems in the crates themselves. Some others are signal 9s (probably OOMs or out-of-times). |
I took a closer look at the regressed (by clashing_extern_declarations) crates. As a summary:
Given these results, and some further reflection, I don't think we should proceed with making clashing_extern_declarations deny because
Thinking about this more, I also realise the user doesn't really get any more value out of making the lint deny-by-default: as a warning, the lint already pushes the user to fix mistakes in the extern function declaration or allow the clash if they know it's safe. For these reasons, I'm going to close this PR. Feel free to re-open -- I'm happy to discuss further. |
Changes the
clashing_extern_declarations
lint to be deny by default, as the lint addresses a soundness issue (see #70496).Note that this change should go through a crater-check run before being merged (as mentioned in #70946 (comment)).
r? @nagisa