Skip to content

make semicolon_in_expressions_from_non_local_macros not report-in-deps - #163364

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:semicolon-no-report-in-deps
Oct 5, 2026
Merged

rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
RalfJung:semicolon-no-report-in-deps

Conversation

@RalfJung

@RalfJung RalfJung commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

View all comments

See #162872 for context. This new lint was made immediately report-in-deps without a crater run. I guess people assumed that the ecosystem fallout would be small, but no data was gathered to confirm that hypothesis. We now have data showing that the ecosystem fallout is gigantic, so let's remove the report-in-deps from this lint.

This should be backported to the 1.100 beta. (1.99 already has this patch.)

Cc @joshtriplett

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 26, 2026
@rustbot

rustbot commented Sep 26, 2026

Copy link
Copy Markdown
Collaborator

r? @mati865

rustbot has assigned @mati865.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 77 candidates
  • Random selection from 20 candidates

@theemathas theemathas added the beta-nominated Nominated for backporting to the compiler in the beta channel. label Sep 26, 2026
@joshtriplett

Copy link
Copy Markdown
Member

Part of the issue here is that this is always effectively "report in deps", it's just a question of whether it's "report only in direct deps" or "report in indirect deps". "Report in the original crate" isn't an option available to us.

@joshtriplett joshtriplett added the I-lang-nominated Nominated for discussion during a lang team meeting. label Sep 26, 2026
@joshtriplett

Copy link
Copy Markdown
Member

Is there a straightforward way for us to find out how much changing this will actually reduce the number of crates directly impacted?

@RalfJung

Copy link
Copy Markdown
Member Author

Yeah this lint is kind of special because it is about macros so it's a bit hard to reason about. But this is a new category of cases we are linting about, where the crate defining the macro doesn't use it (or not in a problematic way, anyway) and so the old lint never triggered. It seems reasonable to me to stage the new lint by first only showing it for direct dependencies that actually use the macro, where this may be a bit less confusing to debug.

Is there a straightforward way for us to find out how much changing this will actually reduce the number of crates directly impacted?

In #162872 the suggestion was to do a crater run with the lint set to deny. We can try doing that, I don't know how well it'll work.

@bors try

rust-bors Bot pushed a commit that referenced this pull request Sep 26, 2026
make semicolon_in_expressions_from_non_local_macros not report-in-deps
@rust-bors

This comment has been minimized.

@RalfJung

Copy link
Copy Markdown
Member Author

If we use the "root regressions" vs "dependencies" in https://crater-reports.s3.amazonaws.com/pr-162768/index.html as indication, then apparently 1500 of the errors are root regressions, around 550 of these are from crates.io. So this would drastically reduce how often the lint is shown. That seems to indicate that in most cases, a newer version of the dependency (though potentially not semver-compatible) is available to fix the problem. OTOH >500 crates with root regressions is still a substantial number.

@rust-bors

rust-bors Bot commented Sep 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 53347bd (53347bd049319c6f1fbbeda74b547c1c9ac10fe6)
Base parent: a22b02e (a22b02eaecd6ac937d752139c79d0159c725932d)

@RalfJung

Copy link
Copy Markdown
Member Author

@craterbot check start=a22b02eaecd6ac937d752139c79d0159c725932d end=53347bd049319c6f1fbbeda74b547c1c9ac10fe6+rustflags=-Dsemicolon_in_expressions_from_non_local_macros

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment pr-163364 created and queued.
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 26, 2026
@joshtriplett

Copy link
Copy Markdown
Member

where the crate defining the macro doesn't use it (or not in a problematic way, anyway) and so the old lint never triggered

Or where the crate defining it only tests it in integration tests, which built as a separate crate, so they never got the lint.

(I'm not going to pretend that the majority of macro crates have thorough tests, but in the case of this particular lint, integration tests wouldn't have helped either.)

@craterbot

Copy link
Copy Markdown
Collaborator

🚧 Experiment pr-163364 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@traviscross traviscross added P-lang-drag-0 Lang team prioritization drag level 0.https://rust-lang.zulipchat.com/#narrow/channel/410516-t-lang. I-lang-radar Items that are on lang's radar and will need eventual work or consideration. labels Sep 30, 2026
@joshtriplett

Copy link
Copy Markdown
Member

We talked about this in today's @rust-lang/lang meeting. We don't expect this to make the warning any more targeted to the crates affected (it's still always going to hit dependents rather than ), but it'll reduce the sheer number of hits in the ecoystem, and given the quantity that seems warranted while fixes are rolling out.

@rfcbot merge lang

We should waive the 10-day period if we get all the checkboxes.

@rust-rfcbot rust-rfcbot added the T-lang Relevant to the language team label Sep 30, 2026
@rust-rfcbot

rust-rfcbot commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

@joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members:

No concerns currently listed.

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

cc @rust-lang/lang-advisors: FCP proposed for lang, please feel free to register concerns.
See this document for info about what commands tagged team members can give me.

@rust-rfcbot rust-rfcbot added proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. labels Sep 30, 2026
@traviscross

Copy link
Copy Markdown
Contributor

Thanks @RalfJung.

@rfcbot reviewed

@scottmcm

Copy link
Copy Markdown
Member

Agreed we should avoid being too noisy initially if doing so is reasonable
@rfcbot reviewed

@rust-rfcbot rust-rfcbot added the final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. label Sep 30, 2026
@RalfJung

RalfJung commented Oct 5, 2026

Copy link
Copy Markdown
Member Author

It is still approved. bors just didn't notice yet that it failed, apparently.
Cc @Kobzol

@rust-bors

rust-bors Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3631ff3 has been approved by mati865

It is now in the queue for this repository.

@theemathas theemathas added the final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. label Oct 5, 2026
@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 5, 2026
@rust-bors

rust-bors Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 9cf9c87 failed: CI. Failed job:

@theemathas theemathas removed the final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. label Oct 5, 2026
@theemathas

Copy link
Copy Markdown
Contributor

@bors r=mati865

@rust-bors

rust-bors Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3631ff3 has been approved by mati865

It is now in the queue for this repository.

A failed build status on this PR was cleared due to the approval.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 5, 2026
@RalfJung

RalfJung commented Oct 5, 2026

Copy link
Copy Markdown
Member Author

(retry would likely have worked now and does not require the label shuffling)

@theemathas theemathas added the final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. label Oct 5, 2026
JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Oct 5, 2026
…ps, r=mati865

make semicolon_in_expressions_from_non_local_macros not report-in-deps

See rust-lang#162872 for context. This new lint was made immediately report-in-deps without a crater run. I guess people assumed that the ecosystem fallout would be small, but no data was gathered to confirm that hypothesis. We now have data showing that the ecosystem fallout is [gigantic](rust-lang#162768 (comment)), so let's remove the report-in-deps from this lint.

This should be backported to the 1.100 beta. (1.99 already has this patch.)

Cc @joshtriplett
rust-bors Bot pushed a commit that referenced this pull request Oct 5, 2026
…uwer

Rollup of 12 pull requests

Successful merges:

 - #163531 (rustc_ast_lowering: track implicit Self via explicit flag instead of name)
 - #160915 ([rustdoc] Fix how `Deref` items is handled.)
 - #163364 (make semicolon_in_expressions_from_non_local_macros not report-in-deps)
 - #163770 (document the rustc_comptime attribute)
 - #163780 (Skip optional asserts in SsaRangePropagation)
 - #163785 (Bump Windows CI LLVM to 22.1.8)
 - #163796 (continue crashes tests `-Znext-solver` work)
 - #163646 (Get `inputs_hir` directly from `decl`)
 - #163733 (Fix extra spaces in integer format_into docs)
 - #163773 (Update GitHub Actions to v26)
 - #163787 (moves rustc_legacy_const_generics checks into attribute parsing)
 - #163810 (Fix an issue for clippy's `search_is_some` with the next-solver)
@rust-bors

rust-bors Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

⌛ Testing commit 3631ff3 with merge 846251e...

Workflow: https://github.com/rust-lang/rust/actions/runs/37348086272

rust-bors Bot pushed a commit that referenced this pull request Oct 5, 2026
make semicolon_in_expressions_from_non_local_macros not report-in-deps



See #162872 for context. This new lint was made immediately report-in-deps without a crater run. I guess people assumed that the ecosystem fallout would be small, but no data was gathered to confirm that hypothesis. We now have data showing that the ecosystem fallout is [gigantic](#162768 (comment)), so let's remove the report-in-deps from this lint.

This should be backported to the 1.100 beta. (1.99 already has this patch.)

Cc @joshtriplett
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors yield
Yielding to enclosing rollup

@rust-bors

rust-bors Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Auto build was cancelled. Cancelled workflows:

The next pull request likely to be tested is #163829.

rust-bors Bot pushed a commit that referenced this pull request Oct 5, 2026
…uwer

Rollup of 11 pull requests

Successful merges:

 - #163364 (make semicolon_in_expressions_from_non_local_macros not report-in-deps)
 - #163531 (rustc_ast_lowering: track implicit Self via explicit flag instead of name)
 - #163770 (document the rustc_comptime attribute)
 - #163780 (Skip optional asserts in SsaRangePropagation)
 - #163785 (Bump Windows CI LLVM to 22.1.8)
 - #163796 (continue crashes tests `-Znext-solver` work)
 - #163646 (Get `inputs_hir` directly from `decl`)
 - #163733 (Fix extra spaces in integer format_into docs)
 - #163773 (Update GitHub Actions to v26)
 - #163787 (moves rustc_legacy_const_generics checks into attribute parsing)
 - #163810 (Fix an issue for clippy's `search_is_some` with the next-solver)
@rust-bors
rust-bors Bot merged commit 2c9ced6 into rust-lang:main Oct 5, 2026
14 of 15 checks passed
rust-bors Bot pushed a commit that referenced this pull request Oct 5, 2026
Rollup merge of #163364 - RalfJung:semicolon-no-report-in-deps, r=mati865

make semicolon_in_expressions_from_non_local_macros not report-in-deps

See #162872 for context. This new lint was made immediately report-in-deps without a crater run. I guess people assumed that the ecosystem fallout would be small, but no data was gathered to confirm that hypothesis. We now have data showing that the ecosystem fallout is [gigantic](#162768 (comment)), so let's remove the report-in-deps from this lint.

This should be backported to the 1.100 beta. (1.99 already has this patch.)

Cc @joshtriplett
@rustbot rustbot added this to the 1.101.0 milestone Oct 5, 2026
@Kobzol

Kobzol commented Oct 6, 2026

Copy link
Copy Markdown
Member

It is still approved. bors just didn't notice yet that it failed, apparently. Cc @Kobzol

Looks like GitHub didn't send us the failure webhook, and not enough time has passed for bors to run its background check to timeout or fail the workflow on its own. @bors yield can be used to restart the workflow, if needed.

@RalfJung

RalfJung commented Oct 6, 2026

Copy link
Copy Markdown
Member Author

In old bors, retry would cause bors to abort the currently running job if there was any, I think? So, it could be used to restart a hung CI, for instance. Maybe it would make sense to also make new bors behave like that?

@Kobzol

Kobzol commented Oct 6, 2026

Copy link
Copy Markdown
Member

It did not, in fact :) It only cleared the failure bit of the build.

I'd like to keep that the same, to avoid the commands doing too much. @bors retry clears the failure bit, and @bors cancel/yield aborts a currently running build.

@rustbot

rustbot commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator

beta backport approved as per compiler team on Zulip. A backport PR will be authored by the release team at the end of the current development cycle. Backport labels are handled by them.

@rustbot rustbot added the beta-accepted Accepted for backporting to the compiler in the beta channel. label Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

beta-accepted Accepted for backporting to the compiler in the beta channel. beta-nominated Nominated for backporting to the compiler in the beta channel. disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. I-lang-nominated Nominated for discussion during a lang team meeting. I-lang-radar Items that are on lang's radar and will need eventual work or consideration. P-lang-drag-0 Lang team prioritization drag level 0.https://rust-lang.zulipchat.com/#narrow/channel/410516-t-lang. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-lang Relevant to the language team

Projects

None yet

Development

Successfully merging this pull request may close these issues.