Migration of LintDiagnostic - part 5 - #153152

Merged
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag
Mar 3, 2026
Merged

Migration of LintDiagnostic - part 5#153152
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Feb 26, 2026

Copy link
Copy Markdown
Member

View all comments

Part of #153099.

With this, rust_lint is finally done, although the change of API of decorate_builtin_lint impacted a few other crates, although minimal, still needed to be mentioned.

r? @JonathanBrouwer

@rustbotrustbot 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Feb 26, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

JonathanBrouwer is currently at their maximum review capacity.
They may take a while to respond.

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Feb 26, 2026
@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
Comment threadsrc/librustdoc/lib.rs Outdated
Comment threadcompiler/rustc_lint/src/context.rs
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Simplified EmitDiag and removed duplicated code. Keeping the last item for after this PR is merged as it's already big enough.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-borsBot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0c55ed2 (0c55ed2450ed4df93bd1cbfbca3f3e31a391a171, parent: 25396cf54981afd1fa5a7406658b45033106a0d3)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0c55ed2): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.3%[0.5%, 3.8%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (primary -6.1%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[3.7%, 4.7%]3
Improvements ✅
(primary)
-6.1%[-6.1%, -6.1%]1
Improvements ✅
(secondary)
-3.0%[-3.0%, -3.0%]1
All ❌✅ (primary)-6.1%[-6.1%, -6.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 481.72s -> 480.975s (-0.15%)
Artifact size: 395.60 MiB -> 395.80 MiB (0.05%)

@rustbotrustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Feb 27, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

If not too annoying I'd like to see the perf regression fixed as well

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup=never
I've spent a few hours locally debugging this perf regression, it seems to be caused by decorate_builtin_lint being called if the lint level is Allow, whereas previously it would quick-exit before this already. I think this is hard to prevent, and the regression is small enough (2% on a secondary test that literally does nothing other than emit allowed lints) that it's fine to accept it.

I've added taking a further look at this to the TODO list of the tracking issue, I have some ideas but don't have time right away to try those out

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3bc1950 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 2, 2026
@fmease

fmease commented Mar 2, 2026

Copy link
Copy Markdown
Member

IIUC this PR basically undoes my PR #125410 (its perf vs this PR's perf). It's very intentional that these were decorated lazily.

Why can't the decorating keep happening lazily for decorate_builtin_lint under the new API you're working towards?

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

That PR's perf had effect on primary benchmarks, while this one only regresses the secondary benchmark, so it's definitely not fully undoing your work.

It's not easy because the new API we're working towards making lint_level take a impl Diagnostic for consistency with errors & warnings, which is harder to properly make lazy. I still think it's possible, one of my ideas is a custom implementation of Diagnostic for BuiltinDiag, but I'd prefer to do that in a separate PR since this one is already on the larger size.

I like perf just as much as you, and I do want to fix this, just don't think the perf regression is bad enough that it has to be done now

@rustbot

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@JonathanBrouwer

Copy link
Copy Markdown
Member

^ Rebased to solve merge conflicts

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try cancel
@bors try

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Mar 2, 2026

@GuillaumeGomezGuillaumeGomez left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github doesn't allow to approve your own PR but your changes look good to me, thanks!

View changes since this review

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e2bd8b9 (e2bd8b9142745e8d99284919273adec4edb2d3a9, parent: 8ddf4ef064fb702fed0f3d239ec8d0bac607484e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e2bd8b9): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.0%[0.0%, 0.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (primary 1.9%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.5%[1.7%, 3.4%]4
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
-0.7%[-0.7%, -0.7%]1
Improvements ✅
(secondary)
-1.8%[-2.3%, -1.2%]2
All ❌✅ (primary)1.9%[-0.7%, 3.4%]5

Cycles

Results (secondary 4.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.9%[3.4%, 6.4%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.113s -> 479.022s (-0.23%)
Artifact size: 396.96 MiB -> 394.98 MiB (-0.50%)

@rustbotrustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Mar 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8a824ee has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 3, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 3, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- #153227 (Don’t report missing fields in struct exprs with syntax errors.)
- #153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- #152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- #153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- #153034 (Remove unhelpful hint from trivial bound errors)
- #153152 (Migration of LintDiagnostic - part 5)
- #153177 (disable the ptr_fragment_in_final test on s390x)
- #153221 (Add release notes for 1.94.0)
- #153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- #153297 (Update the name of the Hermit operating system)
- #153309 (Cleanup of c-variadic link test)
@rust-bors
rust-borsBot merged commit 4a56a45 into rust-lang:mainMar 3, 2026
12 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 3, 2026
rust-timer added a commit that referenced this pull request Mar 3, 2026
Rollup merge of #153152 - GuillaumeGomez:migrate-diag, r=JonathanBrouwer
Migration of LintDiagnostic - part 5
Part of #153099.
With this, `rust_lint` is finally done, although the change of API of `decorate_builtin_lint` impacted a few other crates, although minimal, still needed to be mentioned.
r? @JonathanBrouwer
@fmease

Copy link
Copy Markdown
Member

Thanks a bunch for addressing the perf regression, @JonathanBrouwer 🙏❤️

@GuillaumeGomez
GuillaumeGomez deleted the migrate-diag branch March 3, 2026 13:34
@GuillaumeGomezGuillaumeGomez changed the title Migration of LintDiagnostic - part 5Migration of LintDiagnostic - part 5Mar 3, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- rust-lang/rust#153227 (Don’t report missing fields in struct exprs with syntax errors.)
- rust-lang/rust#153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- rust-lang/rust#152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- rust-lang/rust#153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- rust-lang/rust#153034 (Remove unhelpful hint from trivial bound errors)
- rust-lang/rust#153152 (Migration of LintDiagnostic - part 5)
- rust-lang/rust#153177 (disable the ptr_fragment_in_final test on s390x)
- rust-lang/rust#153221 (Add release notes for 1.94.0)
- rust-lang/rust#153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- rust-lang/rust#153297 (Update the name of the Hermit operating system)
- rust-lang/rust#153309 (Cleanup of c-variadic link test)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@GuillaumeGomez@rustbot@JonathanBrouwer@rust-timer@rust-log-analyzer@fmease
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Migration of LintDiagnostic - part 5 - #153152

Merged
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag
Mar 3, 2026
Merged

Migration of LintDiagnostic - part 5#153152
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Feb 26, 2026

Copy link
Copy Markdown
Member

View all comments

Part of #153099.

With this, rust_lint is finally done, although the change of API of decorate_builtin_lint impacted a few other crates, although minimal, still needed to be mentioned.

r? @JonathanBrouwer

@rustbotrustbot 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Feb 26, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

JonathanBrouwer is currently at their maximum review capacity.
They may take a while to respond.

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Feb 26, 2026
@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
Comment threadsrc/librustdoc/lib.rs Outdated
Comment threadcompiler/rustc_lint/src/context.rs
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Simplified EmitDiag and removed duplicated code. Keeping the last item for after this PR is merged as it's already big enough.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-borsBot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0c55ed2 (0c55ed2450ed4df93bd1cbfbca3f3e31a391a171, parent: 25396cf54981afd1fa5a7406658b45033106a0d3)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0c55ed2): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.3%[0.5%, 3.8%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (primary -6.1%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[3.7%, 4.7%]3
Improvements ✅
(primary)
-6.1%[-6.1%, -6.1%]1
Improvements ✅
(secondary)
-3.0%[-3.0%, -3.0%]1
All ❌✅ (primary)-6.1%[-6.1%, -6.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 481.72s -> 480.975s (-0.15%)
Artifact size: 395.60 MiB -> 395.80 MiB (0.05%)

@rustbotrustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Feb 27, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

If not too annoying I'd like to see the perf regression fixed as well

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup=never
I've spent a few hours locally debugging this perf regression, it seems to be caused by decorate_builtin_lint being called if the lint level is Allow, whereas previously it would quick-exit before this already. I think this is hard to prevent, and the regression is small enough (2% on a secondary test that literally does nothing other than emit allowed lints) that it's fine to accept it.

I've added taking a further look at this to the TODO list of the tracking issue, I have some ideas but don't have time right away to try those out

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3bc1950 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 2, 2026
@fmease

fmease commented Mar 2, 2026

Copy link
Copy Markdown
Member

IIUC this PR basically undoes my PR #125410 (its perf vs this PR's perf). It's very intentional that these were decorated lazily.

Why can't the decorating keep happening lazily for decorate_builtin_lint under the new API you're working towards?

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

That PR's perf had effect on primary benchmarks, while this one only regresses the secondary benchmark, so it's definitely not fully undoing your work.

It's not easy because the new API we're working towards making lint_level take a impl Diagnostic for consistency with errors & warnings, which is harder to properly make lazy. I still think it's possible, one of my ideas is a custom implementation of Diagnostic for BuiltinDiag, but I'd prefer to do that in a separate PR since this one is already on the larger size.

I like perf just as much as you, and I do want to fix this, just don't think the perf regression is bad enough that it has to be done now

@rustbot

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@JonathanBrouwer

Copy link
Copy Markdown
Member

^ Rebased to solve merge conflicts

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try cancel
@bors try

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Mar 2, 2026

@GuillaumeGomezGuillaumeGomez left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github doesn't allow to approve your own PR but your changes look good to me, thanks!

View changes since this review

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e2bd8b9 (e2bd8b9142745e8d99284919273adec4edb2d3a9, parent: 8ddf4ef064fb702fed0f3d239ec8d0bac607484e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e2bd8b9): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.0%[0.0%, 0.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (primary 1.9%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.5%[1.7%, 3.4%]4
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
-0.7%[-0.7%, -0.7%]1
Improvements ✅
(secondary)
-1.8%[-2.3%, -1.2%]2
All ❌✅ (primary)1.9%[-0.7%, 3.4%]5

Cycles

Results (secondary 4.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.9%[3.4%, 6.4%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.113s -> 479.022s (-0.23%)
Artifact size: 396.96 MiB -> 394.98 MiB (-0.50%)

@rustbotrustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Mar 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8a824ee has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 3, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 3, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- #153227 (Don’t report missing fields in struct exprs with syntax errors.)
- #153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- #152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- #153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- #153034 (Remove unhelpful hint from trivial bound errors)
- #153152 (Migration of LintDiagnostic - part 5)
- #153177 (disable the ptr_fragment_in_final test on s390x)
- #153221 (Add release notes for 1.94.0)
- #153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- #153297 (Update the name of the Hermit operating system)
- #153309 (Cleanup of c-variadic link test)
@rust-bors
rust-borsBot merged commit 4a56a45 into rust-lang:mainMar 3, 2026
12 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 3, 2026
rust-timer added a commit that referenced this pull request Mar 3, 2026
Rollup merge of #153152 - GuillaumeGomez:migrate-diag, r=JonathanBrouwer
Migration of LintDiagnostic - part 5
Part of #153099.
With this, `rust_lint` is finally done, although the change of API of `decorate_builtin_lint` impacted a few other crates, although minimal, still needed to be mentioned.
r? @JonathanBrouwer
@fmease

Copy link
Copy Markdown
Member

Thanks a bunch for addressing the perf regression, @JonathanBrouwer 🙏❤️

@GuillaumeGomez
GuillaumeGomez deleted the migrate-diag branch March 3, 2026 13:34
@GuillaumeGomezGuillaumeGomez changed the title Migration of LintDiagnostic - part 5Migration of LintDiagnostic - part 5Mar 3, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- rust-lang/rust#153227 (Don’t report missing fields in struct exprs with syntax errors.)
- rust-lang/rust#153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- rust-lang/rust#152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- rust-lang/rust#153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- rust-lang/rust#153034 (Remove unhelpful hint from trivial bound errors)
- rust-lang/rust#153152 (Migration of LintDiagnostic - part 5)
- rust-lang/rust#153177 (disable the ptr_fragment_in_final test on s390x)
- rust-lang/rust#153221 (Add release notes for 1.94.0)
- rust-lang/rust#153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- rust-lang/rust#153297 (Update the name of the Hermit operating system)
- rust-lang/rust#153309 (Cleanup of c-variadic link test)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@GuillaumeGomez@rustbot@JonathanBrouwer@rust-timer@rust-log-analyzer@fmease
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Migration of LintDiagnostic - part 5 - #153152

Merged
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag
Mar 3, 2026
Merged

Migration of LintDiagnostic - part 5#153152
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Feb 26, 2026

Copy link
Copy Markdown
Member

View all comments

Part of #153099.

With this, rust_lint is finally done, although the change of API of decorate_builtin_lint impacted a few other crates, although minimal, still needed to be mentioned.

r? @JonathanBrouwer

@rustbotrustbot 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Feb 26, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

JonathanBrouwer is currently at their maximum review capacity.
They may take a while to respond.

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Feb 26, 2026
@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
Comment threadsrc/librustdoc/lib.rs Outdated
Comment threadcompiler/rustc_lint/src/context.rs
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Simplified EmitDiag and removed duplicated code. Keeping the last item for after this PR is merged as it's already big enough.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-borsBot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0c55ed2 (0c55ed2450ed4df93bd1cbfbca3f3e31a391a171, parent: 25396cf54981afd1fa5a7406658b45033106a0d3)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0c55ed2): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.3%[0.5%, 3.8%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (primary -6.1%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[3.7%, 4.7%]3
Improvements ✅
(primary)
-6.1%[-6.1%, -6.1%]1
Improvements ✅
(secondary)
-3.0%[-3.0%, -3.0%]1
All ❌✅ (primary)-6.1%[-6.1%, -6.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 481.72s -> 480.975s (-0.15%)
Artifact size: 395.60 MiB -> 395.80 MiB (0.05%)

@rustbotrustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Feb 27, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

If not too annoying I'd like to see the perf regression fixed as well

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup=never
I've spent a few hours locally debugging this perf regression, it seems to be caused by decorate_builtin_lint being called if the lint level is Allow, whereas previously it would quick-exit before this already. I think this is hard to prevent, and the regression is small enough (2% on a secondary test that literally does nothing other than emit allowed lints) that it's fine to accept it.

I've added taking a further look at this to the TODO list of the tracking issue, I have some ideas but don't have time right away to try those out

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3bc1950 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 2, 2026
@fmease

fmease commented Mar 2, 2026

Copy link
Copy Markdown
Member

IIUC this PR basically undoes my PR #125410 (its perf vs this PR's perf). It's very intentional that these were decorated lazily.

Why can't the decorating keep happening lazily for decorate_builtin_lint under the new API you're working towards?

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

That PR's perf had effect on primary benchmarks, while this one only regresses the secondary benchmark, so it's definitely not fully undoing your work.

It's not easy because the new API we're working towards making lint_level take a impl Diagnostic for consistency with errors & warnings, which is harder to properly make lazy. I still think it's possible, one of my ideas is a custom implementation of Diagnostic for BuiltinDiag, but I'd prefer to do that in a separate PR since this one is already on the larger size.

I like perf just as much as you, and I do want to fix this, just don't think the perf regression is bad enough that it has to be done now

@rustbot

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@JonathanBrouwer

Copy link
Copy Markdown
Member

^ Rebased to solve merge conflicts

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try cancel
@bors try

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Mar 2, 2026

@GuillaumeGomezGuillaumeGomez left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github doesn't allow to approve your own PR but your changes look good to me, thanks!

View changes since this review

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e2bd8b9 (e2bd8b9142745e8d99284919273adec4edb2d3a9, parent: 8ddf4ef064fb702fed0f3d239ec8d0bac607484e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e2bd8b9): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.0%[0.0%, 0.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (primary 1.9%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.5%[1.7%, 3.4%]4
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
-0.7%[-0.7%, -0.7%]1
Improvements ✅
(secondary)
-1.8%[-2.3%, -1.2%]2
All ❌✅ (primary)1.9%[-0.7%, 3.4%]5

Cycles

Results (secondary 4.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.9%[3.4%, 6.4%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.113s -> 479.022s (-0.23%)
Artifact size: 396.96 MiB -> 394.98 MiB (-0.50%)

@rustbotrustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Mar 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8a824ee has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 3, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 3, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- #153227 (Don’t report missing fields in struct exprs with syntax errors.)
- #153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- #152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- #153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- #153034 (Remove unhelpful hint from trivial bound errors)
- #153152 (Migration of LintDiagnostic - part 5)
- #153177 (disable the ptr_fragment_in_final test on s390x)
- #153221 (Add release notes for 1.94.0)
- #153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- #153297 (Update the name of the Hermit operating system)
- #153309 (Cleanup of c-variadic link test)
@rust-bors
rust-borsBot merged commit 4a56a45 into rust-lang:mainMar 3, 2026
12 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 3, 2026
rust-timer added a commit that referenced this pull request Mar 3, 2026
Rollup merge of #153152 - GuillaumeGomez:migrate-diag, r=JonathanBrouwer
Migration of LintDiagnostic - part 5
Part of #153099.
With this, `rust_lint` is finally done, although the change of API of `decorate_builtin_lint` impacted a few other crates, although minimal, still needed to be mentioned.
r? @JonathanBrouwer
@fmease

Copy link
Copy Markdown
Member

Thanks a bunch for addressing the perf regression, @JonathanBrouwer 🙏❤️

@GuillaumeGomez
GuillaumeGomez deleted the migrate-diag branch March 3, 2026 13:34
@GuillaumeGomezGuillaumeGomez changed the title Migration of LintDiagnostic - part 5Migration of LintDiagnostic - part 5Mar 3, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- rust-lang/rust#153227 (Don’t report missing fields in struct exprs with syntax errors.)
- rust-lang/rust#153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- rust-lang/rust#152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- rust-lang/rust#153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- rust-lang/rust#153034 (Remove unhelpful hint from trivial bound errors)
- rust-lang/rust#153152 (Migration of LintDiagnostic - part 5)
- rust-lang/rust#153177 (disable the ptr_fragment_in_final test on s390x)
- rust-lang/rust#153221 (Add release notes for 1.94.0)
- rust-lang/rust#153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- rust-lang/rust#153297 (Update the name of the Hermit operating system)
- rust-lang/rust#153309 (Cleanup of c-variadic link test)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@GuillaumeGomez@rustbot@JonathanBrouwer@rust-timer@rust-log-analyzer@fmease
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Migration of LintDiagnostic - part 5 - #153152

Merged
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag
Mar 3, 2026
Merged

Migration of LintDiagnostic - part 5#153152
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Feb 26, 2026

Copy link
Copy Markdown
Member

View all comments

Part of #153099.

With this, rust_lint is finally done, although the change of API of decorate_builtin_lint impacted a few other crates, although minimal, still needed to be mentioned.

r? @JonathanBrouwer

@rustbotrustbot 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Feb 26, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

JonathanBrouwer is currently at their maximum review capacity.
They may take a while to respond.

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Feb 26, 2026
@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
Comment threadsrc/librustdoc/lib.rs Outdated
Comment threadcompiler/rustc_lint/src/context.rs
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Simplified EmitDiag and removed duplicated code. Keeping the last item for after this PR is merged as it's already big enough.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-borsBot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0c55ed2 (0c55ed2450ed4df93bd1cbfbca3f3e31a391a171, parent: 25396cf54981afd1fa5a7406658b45033106a0d3)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0c55ed2): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.3%[0.5%, 3.8%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (primary -6.1%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[3.7%, 4.7%]3
Improvements ✅
(primary)
-6.1%[-6.1%, -6.1%]1
Improvements ✅
(secondary)
-3.0%[-3.0%, -3.0%]1
All ❌✅ (primary)-6.1%[-6.1%, -6.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 481.72s -> 480.975s (-0.15%)
Artifact size: 395.60 MiB -> 395.80 MiB (0.05%)

@rustbotrustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Feb 27, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

If not too annoying I'd like to see the perf regression fixed as well

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup=never
I've spent a few hours locally debugging this perf regression, it seems to be caused by decorate_builtin_lint being called if the lint level is Allow, whereas previously it would quick-exit before this already. I think this is hard to prevent, and the regression is small enough (2% on a secondary test that literally does nothing other than emit allowed lints) that it's fine to accept it.

I've added taking a further look at this to the TODO list of the tracking issue, I have some ideas but don't have time right away to try those out

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3bc1950 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 2, 2026
@fmease

fmease commented Mar 2, 2026

Copy link
Copy Markdown
Member

IIUC this PR basically undoes my PR #125410 (its perf vs this PR's perf). It's very intentional that these were decorated lazily.

Why can't the decorating keep happening lazily for decorate_builtin_lint under the new API you're working towards?

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

That PR's perf had effect on primary benchmarks, while this one only regresses the secondary benchmark, so it's definitely not fully undoing your work.

It's not easy because the new API we're working towards making lint_level take a impl Diagnostic for consistency with errors & warnings, which is harder to properly make lazy. I still think it's possible, one of my ideas is a custom implementation of Diagnostic for BuiltinDiag, but I'd prefer to do that in a separate PR since this one is already on the larger size.

I like perf just as much as you, and I do want to fix this, just don't think the perf regression is bad enough that it has to be done now

@rustbot

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@JonathanBrouwer

Copy link
Copy Markdown
Member

^ Rebased to solve merge conflicts

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try cancel
@bors try

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Mar 2, 2026

@GuillaumeGomezGuillaumeGomez left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github doesn't allow to approve your own PR but your changes look good to me, thanks!

View changes since this review

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e2bd8b9 (e2bd8b9142745e8d99284919273adec4edb2d3a9, parent: 8ddf4ef064fb702fed0f3d239ec8d0bac607484e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e2bd8b9): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.0%[0.0%, 0.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (primary 1.9%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.5%[1.7%, 3.4%]4
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
-0.7%[-0.7%, -0.7%]1
Improvements ✅
(secondary)
-1.8%[-2.3%, -1.2%]2
All ❌✅ (primary)1.9%[-0.7%, 3.4%]5

Cycles

Results (secondary 4.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.9%[3.4%, 6.4%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.113s -> 479.022s (-0.23%)
Artifact size: 396.96 MiB -> 394.98 MiB (-0.50%)

@rustbotrustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Mar 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8a824ee has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 3, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 3, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- #153227 (Don’t report missing fields in struct exprs with syntax errors.)
- #153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- #152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- #153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- #153034 (Remove unhelpful hint from trivial bound errors)
- #153152 (Migration of LintDiagnostic - part 5)
- #153177 (disable the ptr_fragment_in_final test on s390x)
- #153221 (Add release notes for 1.94.0)
- #153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- #153297 (Update the name of the Hermit operating system)
- #153309 (Cleanup of c-variadic link test)
@rust-bors
rust-borsBot merged commit 4a56a45 into rust-lang:mainMar 3, 2026
12 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 3, 2026
rust-timer added a commit that referenced this pull request Mar 3, 2026
Rollup merge of #153152 - GuillaumeGomez:migrate-diag, r=JonathanBrouwer
Migration of LintDiagnostic - part 5
Part of #153099.
With this, `rust_lint` is finally done, although the change of API of `decorate_builtin_lint` impacted a few other crates, although minimal, still needed to be mentioned.
r? @JonathanBrouwer
@fmease

Copy link
Copy Markdown
Member

Thanks a bunch for addressing the perf regression, @JonathanBrouwer 🙏❤️

@GuillaumeGomez
GuillaumeGomez deleted the migrate-diag branch March 3, 2026 13:34
@GuillaumeGomezGuillaumeGomez changed the title Migration of LintDiagnostic - part 5Migration of LintDiagnostic - part 5Mar 3, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- rust-lang/rust#153227 (Don’t report missing fields in struct exprs with syntax errors.)
- rust-lang/rust#153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- rust-lang/rust#152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- rust-lang/rust#153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- rust-lang/rust#153034 (Remove unhelpful hint from trivial bound errors)
- rust-lang/rust#153152 (Migration of LintDiagnostic - part 5)
- rust-lang/rust#153177 (disable the ptr_fragment_in_final test on s390x)
- rust-lang/rust#153221 (Add release notes for 1.94.0)
- rust-lang/rust#153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- rust-lang/rust#153297 (Update the name of the Hermit operating system)
- rust-lang/rust#153309 (Cleanup of c-variadic link test)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@GuillaumeGomez@rustbot@JonathanBrouwer@rust-timer@rust-log-analyzer@fmease
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Migration of LintDiagnostic - part 5 - #153152

Merged
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag
Mar 3, 2026
Merged

Migration of LintDiagnostic - part 5#153152
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Feb 26, 2026

Copy link
Copy Markdown
Member

View all comments

Part of #153099.

With this, rust_lint is finally done, although the change of API of decorate_builtin_lint impacted a few other crates, although minimal, still needed to be mentioned.

r? @JonathanBrouwer

@rustbotrustbot 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Feb 26, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

JonathanBrouwer is currently at their maximum review capacity.
They may take a while to respond.

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Feb 26, 2026
@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
Comment threadsrc/librustdoc/lib.rs Outdated
Comment threadcompiler/rustc_lint/src/context.rs
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Simplified EmitDiag and removed duplicated code. Keeping the last item for after this PR is merged as it's already big enough.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-borsBot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0c55ed2 (0c55ed2450ed4df93bd1cbfbca3f3e31a391a171, parent: 25396cf54981afd1fa5a7406658b45033106a0d3)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0c55ed2): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.3%[0.5%, 3.8%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (primary -6.1%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[3.7%, 4.7%]3
Improvements ✅
(primary)
-6.1%[-6.1%, -6.1%]1
Improvements ✅
(secondary)
-3.0%[-3.0%, -3.0%]1
All ❌✅ (primary)-6.1%[-6.1%, -6.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 481.72s -> 480.975s (-0.15%)
Artifact size: 395.60 MiB -> 395.80 MiB (0.05%)

@rustbotrustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Feb 27, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

If not too annoying I'd like to see the perf regression fixed as well

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup=never
I've spent a few hours locally debugging this perf regression, it seems to be caused by decorate_builtin_lint being called if the lint level is Allow, whereas previously it would quick-exit before this already. I think this is hard to prevent, and the regression is small enough (2% on a secondary test that literally does nothing other than emit allowed lints) that it's fine to accept it.

I've added taking a further look at this to the TODO list of the tracking issue, I have some ideas but don't have time right away to try those out

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3bc1950 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 2, 2026
@fmease

fmease commented Mar 2, 2026

Copy link
Copy Markdown
Member

IIUC this PR basically undoes my PR #125410 (its perf vs this PR's perf). It's very intentional that these were decorated lazily.

Why can't the decorating keep happening lazily for decorate_builtin_lint under the new API you're working towards?

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

That PR's perf had effect on primary benchmarks, while this one only regresses the secondary benchmark, so it's definitely not fully undoing your work.

It's not easy because the new API we're working towards making lint_level take a impl Diagnostic for consistency with errors & warnings, which is harder to properly make lazy. I still think it's possible, one of my ideas is a custom implementation of Diagnostic for BuiltinDiag, but I'd prefer to do that in a separate PR since this one is already on the larger size.

I like perf just as much as you, and I do want to fix this, just don't think the perf regression is bad enough that it has to be done now

@rustbot

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@JonathanBrouwer

Copy link
Copy Markdown
Member

^ Rebased to solve merge conflicts

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try cancel
@bors try

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Mar 2, 2026

@GuillaumeGomezGuillaumeGomez left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github doesn't allow to approve your own PR but your changes look good to me, thanks!

View changes since this review

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e2bd8b9 (e2bd8b9142745e8d99284919273adec4edb2d3a9, parent: 8ddf4ef064fb702fed0f3d239ec8d0bac607484e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e2bd8b9): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.0%[0.0%, 0.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (primary 1.9%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.5%[1.7%, 3.4%]4
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
-0.7%[-0.7%, -0.7%]1
Improvements ✅
(secondary)
-1.8%[-2.3%, -1.2%]2
All ❌✅ (primary)1.9%[-0.7%, 3.4%]5

Cycles

Results (secondary 4.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.9%[3.4%, 6.4%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.113s -> 479.022s (-0.23%)
Artifact size: 396.96 MiB -> 394.98 MiB (-0.50%)

@rustbotrustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Mar 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8a824ee has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 3, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 3, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- #153227 (Don’t report missing fields in struct exprs with syntax errors.)
- #153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- #152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- #153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- #153034 (Remove unhelpful hint from trivial bound errors)
- #153152 (Migration of LintDiagnostic - part 5)
- #153177 (disable the ptr_fragment_in_final test on s390x)
- #153221 (Add release notes for 1.94.0)
- #153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- #153297 (Update the name of the Hermit operating system)
- #153309 (Cleanup of c-variadic link test)
@rust-bors
rust-borsBot merged commit 4a56a45 into rust-lang:mainMar 3, 2026
12 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 3, 2026
rust-timer added a commit that referenced this pull request Mar 3, 2026
Rollup merge of #153152 - GuillaumeGomez:migrate-diag, r=JonathanBrouwer
Migration of LintDiagnostic - part 5
Part of #153099.
With this, `rust_lint` is finally done, although the change of API of `decorate_builtin_lint` impacted a few other crates, although minimal, still needed to be mentioned.
r? @JonathanBrouwer
@fmease

Copy link
Copy Markdown
Member

Thanks a bunch for addressing the perf regression, @JonathanBrouwer 🙏❤️

@GuillaumeGomez
GuillaumeGomez deleted the migrate-diag branch March 3, 2026 13:34
@GuillaumeGomezGuillaumeGomez changed the title Migration of LintDiagnostic - part 5Migration of LintDiagnostic - part 5Mar 3, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- rust-lang/rust#153227 (Don’t report missing fields in struct exprs with syntax errors.)
- rust-lang/rust#153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- rust-lang/rust#152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- rust-lang/rust#153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- rust-lang/rust#153034 (Remove unhelpful hint from trivial bound errors)
- rust-lang/rust#153152 (Migration of LintDiagnostic - part 5)
- rust-lang/rust#153177 (disable the ptr_fragment_in_final test on s390x)
- rust-lang/rust#153221 (Add release notes for 1.94.0)
- rust-lang/rust#153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- rust-lang/rust#153297 (Update the name of the Hermit operating system)
- rust-lang/rust#153309 (Cleanup of c-variadic link test)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@GuillaumeGomez@rustbot@JonathanBrouwer@rust-timer@rust-log-analyzer@fmease
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Migration of LintDiagnostic - part 5 - #153152

Merged
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag
Mar 3, 2026
Merged

Migration of LintDiagnostic - part 5#153152
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Feb 26, 2026

Copy link
Copy Markdown
Member

View all comments

Part of #153099.

With this, rust_lint is finally done, although the change of API of decorate_builtin_lint impacted a few other crates, although minimal, still needed to be mentioned.

r? @JonathanBrouwer

@rustbotrustbot 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Feb 26, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

JonathanBrouwer is currently at their maximum review capacity.
They may take a while to respond.

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Feb 26, 2026
@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
Comment threadsrc/librustdoc/lib.rs Outdated
Comment threadcompiler/rustc_lint/src/context.rs
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Simplified EmitDiag and removed duplicated code. Keeping the last item for after this PR is merged as it's already big enough.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-borsBot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0c55ed2 (0c55ed2450ed4df93bd1cbfbca3f3e31a391a171, parent: 25396cf54981afd1fa5a7406658b45033106a0d3)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0c55ed2): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.3%[0.5%, 3.8%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (primary -6.1%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[3.7%, 4.7%]3
Improvements ✅
(primary)
-6.1%[-6.1%, -6.1%]1
Improvements ✅
(secondary)
-3.0%[-3.0%, -3.0%]1
All ❌✅ (primary)-6.1%[-6.1%, -6.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 481.72s -> 480.975s (-0.15%)
Artifact size: 395.60 MiB -> 395.80 MiB (0.05%)

@rustbotrustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Feb 27, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

If not too annoying I'd like to see the perf regression fixed as well

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup=never
I've spent a few hours locally debugging this perf regression, it seems to be caused by decorate_builtin_lint being called if the lint level is Allow, whereas previously it would quick-exit before this already. I think this is hard to prevent, and the regression is small enough (2% on a secondary test that literally does nothing other than emit allowed lints) that it's fine to accept it.

I've added taking a further look at this to the TODO list of the tracking issue, I have some ideas but don't have time right away to try those out

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3bc1950 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 2, 2026
@fmease

fmease commented Mar 2, 2026

Copy link
Copy Markdown
Member

IIUC this PR basically undoes my PR #125410 (its perf vs this PR's perf). It's very intentional that these were decorated lazily.

Why can't the decorating keep happening lazily for decorate_builtin_lint under the new API you're working towards?

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

That PR's perf had effect on primary benchmarks, while this one only regresses the secondary benchmark, so it's definitely not fully undoing your work.

It's not easy because the new API we're working towards making lint_level take a impl Diagnostic for consistency with errors & warnings, which is harder to properly make lazy. I still think it's possible, one of my ideas is a custom implementation of Diagnostic for BuiltinDiag, but I'd prefer to do that in a separate PR since this one is already on the larger size.

I like perf just as much as you, and I do want to fix this, just don't think the perf regression is bad enough that it has to be done now

@rustbot

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@JonathanBrouwer

Copy link
Copy Markdown
Member

^ Rebased to solve merge conflicts

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try cancel
@bors try

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Mar 2, 2026

@GuillaumeGomezGuillaumeGomez left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github doesn't allow to approve your own PR but your changes look good to me, thanks!

View changes since this review

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e2bd8b9 (e2bd8b9142745e8d99284919273adec4edb2d3a9, parent: 8ddf4ef064fb702fed0f3d239ec8d0bac607484e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e2bd8b9): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.0%[0.0%, 0.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (primary 1.9%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.5%[1.7%, 3.4%]4
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
-0.7%[-0.7%, -0.7%]1
Improvements ✅
(secondary)
-1.8%[-2.3%, -1.2%]2
All ❌✅ (primary)1.9%[-0.7%, 3.4%]5

Cycles

Results (secondary 4.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.9%[3.4%, 6.4%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.113s -> 479.022s (-0.23%)
Artifact size: 396.96 MiB -> 394.98 MiB (-0.50%)

@rustbotrustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Mar 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8a824ee has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 3, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 3, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- #153227 (Don’t report missing fields in struct exprs with syntax errors.)
- #153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- #152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- #153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- #153034 (Remove unhelpful hint from trivial bound errors)
- #153152 (Migration of LintDiagnostic - part 5)
- #153177 (disable the ptr_fragment_in_final test on s390x)
- #153221 (Add release notes for 1.94.0)
- #153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- #153297 (Update the name of the Hermit operating system)
- #153309 (Cleanup of c-variadic link test)
@rust-bors
rust-borsBot merged commit 4a56a45 into rust-lang:mainMar 3, 2026
12 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 3, 2026
rust-timer added a commit that referenced this pull request Mar 3, 2026
Rollup merge of #153152 - GuillaumeGomez:migrate-diag, r=JonathanBrouwer
Migration of LintDiagnostic - part 5
Part of #153099.
With this, `rust_lint` is finally done, although the change of API of `decorate_builtin_lint` impacted a few other crates, although minimal, still needed to be mentioned.
r? @JonathanBrouwer
@fmease

Copy link
Copy Markdown
Member

Thanks a bunch for addressing the perf regression, @JonathanBrouwer 🙏❤️

@GuillaumeGomez
GuillaumeGomez deleted the migrate-diag branch March 3, 2026 13:34
@GuillaumeGomezGuillaumeGomez changed the title Migration of LintDiagnostic - part 5Migration of LintDiagnostic - part 5Mar 3, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- rust-lang/rust#153227 (Don’t report missing fields in struct exprs with syntax errors.)
- rust-lang/rust#153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- rust-lang/rust#152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- rust-lang/rust#153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- rust-lang/rust#153034 (Remove unhelpful hint from trivial bound errors)
- rust-lang/rust#153152 (Migration of LintDiagnostic - part 5)
- rust-lang/rust#153177 (disable the ptr_fragment_in_final test on s390x)
- rust-lang/rust#153221 (Add release notes for 1.94.0)
- rust-lang/rust#153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- rust-lang/rust#153297 (Update the name of the Hermit operating system)
- rust-lang/rust#153309 (Cleanup of c-variadic link test)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@GuillaumeGomez@rustbot@JonathanBrouwer@rust-timer@rust-log-analyzer@fmease
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Migration of LintDiagnostic - part 5 - #153152

Merged
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag
Mar 3, 2026
Merged

Migration of LintDiagnostic - part 5#153152
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Feb 26, 2026

Copy link
Copy Markdown
Member

View all comments

Part of #153099.

With this, rust_lint is finally done, although the change of API of decorate_builtin_lint impacted a few other crates, although minimal, still needed to be mentioned.

r? @JonathanBrouwer

@rustbotrustbot 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Feb 26, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

JonathanBrouwer is currently at their maximum review capacity.
They may take a while to respond.

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Feb 26, 2026
@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
Comment threadsrc/librustdoc/lib.rs Outdated
Comment threadcompiler/rustc_lint/src/context.rs
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Simplified EmitDiag and removed duplicated code. Keeping the last item for after this PR is merged as it's already big enough.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-borsBot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0c55ed2 (0c55ed2450ed4df93bd1cbfbca3f3e31a391a171, parent: 25396cf54981afd1fa5a7406658b45033106a0d3)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0c55ed2): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.3%[0.5%, 3.8%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (primary -6.1%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[3.7%, 4.7%]3
Improvements ✅
(primary)
-6.1%[-6.1%, -6.1%]1
Improvements ✅
(secondary)
-3.0%[-3.0%, -3.0%]1
All ❌✅ (primary)-6.1%[-6.1%, -6.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 481.72s -> 480.975s (-0.15%)
Artifact size: 395.60 MiB -> 395.80 MiB (0.05%)

@rustbotrustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Feb 27, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

If not too annoying I'd like to see the perf regression fixed as well

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup=never
I've spent a few hours locally debugging this perf regression, it seems to be caused by decorate_builtin_lint being called if the lint level is Allow, whereas previously it would quick-exit before this already. I think this is hard to prevent, and the regression is small enough (2% on a secondary test that literally does nothing other than emit allowed lints) that it's fine to accept it.

I've added taking a further look at this to the TODO list of the tracking issue, I have some ideas but don't have time right away to try those out

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3bc1950 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 2, 2026
@fmease

fmease commented Mar 2, 2026

Copy link
Copy Markdown
Member

IIUC this PR basically undoes my PR #125410 (its perf vs this PR's perf). It's very intentional that these were decorated lazily.

Why can't the decorating keep happening lazily for decorate_builtin_lint under the new API you're working towards?

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

That PR's perf had effect on primary benchmarks, while this one only regresses the secondary benchmark, so it's definitely not fully undoing your work.

It's not easy because the new API we're working towards making lint_level take a impl Diagnostic for consistency with errors & warnings, which is harder to properly make lazy. I still think it's possible, one of my ideas is a custom implementation of Diagnostic for BuiltinDiag, but I'd prefer to do that in a separate PR since this one is already on the larger size.

I like perf just as much as you, and I do want to fix this, just don't think the perf regression is bad enough that it has to be done now

@rustbot

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@JonathanBrouwer

Copy link
Copy Markdown
Member

^ Rebased to solve merge conflicts

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try cancel
@bors try

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Mar 2, 2026

@GuillaumeGomezGuillaumeGomez left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github doesn't allow to approve your own PR but your changes look good to me, thanks!

View changes since this review

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e2bd8b9 (e2bd8b9142745e8d99284919273adec4edb2d3a9, parent: 8ddf4ef064fb702fed0f3d239ec8d0bac607484e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e2bd8b9): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.0%[0.0%, 0.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (primary 1.9%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.5%[1.7%, 3.4%]4
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
-0.7%[-0.7%, -0.7%]1
Improvements ✅
(secondary)
-1.8%[-2.3%, -1.2%]2
All ❌✅ (primary)1.9%[-0.7%, 3.4%]5

Cycles

Results (secondary 4.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.9%[3.4%, 6.4%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.113s -> 479.022s (-0.23%)
Artifact size: 396.96 MiB -> 394.98 MiB (-0.50%)

@rustbotrustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Mar 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8a824ee has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 3, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 3, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- #153227 (Don’t report missing fields in struct exprs with syntax errors.)
- #153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- #152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- #153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- #153034 (Remove unhelpful hint from trivial bound errors)
- #153152 (Migration of LintDiagnostic - part 5)
- #153177 (disable the ptr_fragment_in_final test on s390x)
- #153221 (Add release notes for 1.94.0)
- #153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- #153297 (Update the name of the Hermit operating system)
- #153309 (Cleanup of c-variadic link test)
@rust-bors
rust-borsBot merged commit 4a56a45 into rust-lang:mainMar 3, 2026
12 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 3, 2026
rust-timer added a commit that referenced this pull request Mar 3, 2026
Rollup merge of #153152 - GuillaumeGomez:migrate-diag, r=JonathanBrouwer
Migration of LintDiagnostic - part 5
Part of #153099.
With this, `rust_lint` is finally done, although the change of API of `decorate_builtin_lint` impacted a few other crates, although minimal, still needed to be mentioned.
r? @JonathanBrouwer
@fmease

Copy link
Copy Markdown
Member

Thanks a bunch for addressing the perf regression, @JonathanBrouwer 🙏❤️

@GuillaumeGomez
GuillaumeGomez deleted the migrate-diag branch March 3, 2026 13:34
@GuillaumeGomezGuillaumeGomez changed the title Migration of LintDiagnostic - part 5Migration of LintDiagnostic - part 5Mar 3, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- rust-lang/rust#153227 (Don’t report missing fields in struct exprs with syntax errors.)
- rust-lang/rust#153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- rust-lang/rust#152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- rust-lang/rust#153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- rust-lang/rust#153034 (Remove unhelpful hint from trivial bound errors)
- rust-lang/rust#153152 (Migration of LintDiagnostic - part 5)
- rust-lang/rust#153177 (disable the ptr_fragment_in_final test on s390x)
- rust-lang/rust#153221 (Add release notes for 1.94.0)
- rust-lang/rust#153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- rust-lang/rust#153297 (Update the name of the Hermit operating system)
- rust-lang/rust#153309 (Cleanup of c-variadic link test)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@GuillaumeGomez@rustbot@JonathanBrouwer@rust-timer@rust-log-analyzer@fmease
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Migration of LintDiagnostic - part 5 - #153152

Merged
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag
Mar 3, 2026
Merged

Migration of LintDiagnostic - part 5#153152
rust-bors[bot] merged 8 commits into
rust-lang:mainfrom
GuillaumeGomez:migrate-diag

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Feb 26, 2026

Copy link
Copy Markdown
Member

View all comments

Part of #153099.

With this, rust_lint is finally done, although the change of API of decorate_builtin_lint impacted a few other crates, although minimal, still needed to be mentioned.

r? @JonathanBrouwer

@rustbotrustbot 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. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Feb 26, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

JonathanBrouwer is currently at their maximum review capacity.
They may take a while to respond.

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Feb 26, 2026
@rustbotrustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
Comment threadsrc/librustdoc/lib.rs Outdated
Comment threadcompiler/rustc_lint/src/context.rs
@rustbotrustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2026
Comment threadcompiler/rustc_lint/src/early/diagnostics.rs Outdated
@GuillaumeGomez

Copy link
Copy Markdown
MemberAuthor

Simplified EmitDiag and removed duplicated code. Keeping the last item for after this PR is merged as it's already big enough.

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-borsBot commented Feb 26, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0c55ed2 (0c55ed2450ed4df93bd1cbfbca3f3e31a391a171, parent: 25396cf54981afd1fa5a7406658b45033106a0d3)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (0c55ed2): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.3%[0.5%, 3.8%]13
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

Results (primary -6.1%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[3.7%, 4.7%]3
Improvements ✅
(primary)
-6.1%[-6.1%, -6.1%]1
Improvements ✅
(secondary)
-3.0%[-3.0%, -3.0%]1
All ❌✅ (primary)-6.1%[-6.1%, -6.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 481.72s -> 480.975s (-0.15%)
Artifact size: 395.60 MiB -> 395.80 MiB (0.05%)

@rustbotrustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Feb 27, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

If not too annoying I'd like to see the perf regression fixed as well

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup=never
I've spent a few hours locally debugging this perf regression, it seems to be caused by decorate_builtin_lint being called if the lint level is Allow, whereas previously it would quick-exit before this already. I think this is hard to prevent, and the regression is small enough (2% on a secondary test that literally does nothing other than emit allowed lints) that it's fine to accept it.

I've added taking a further look at this to the TODO list of the tracking issue, I have some ideas but don't have time right away to try those out

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 3bc1950 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 2, 2026
@fmease

fmease commented Mar 2, 2026

Copy link
Copy Markdown
Member

IIUC this PR basically undoes my PR #125410 (its perf vs this PR's perf). It's very intentional that these were decorated lazily.

Why can't the decorating keep happening lazily for decorate_builtin_lint under the new API you're working towards?

@JonathanBrouwer

JonathanBrouwer commented Mar 2, 2026

Copy link
Copy Markdown
Member

That PR's perf had effect on primary benchmarks, while this one only regresses the secondary benchmark, so it's definitely not fully undoing your work.

It's not easy because the new API we're working towards making lint_level take a impl Diagnostic for consistency with errors & warnings, which is harder to properly make lazy. I still think it's possible, one of my ideas is a custom implementation of Diagnostic for BuiltinDiag, but I'd prefer to do that in a separate PR since this one is already on the larger size.

I like perf just as much as you, and I do want to fix this, just don't think the perf regression is bad enough that it has to be done now

@rustbot

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@JonathanBrouwer

Copy link
Copy Markdown
Member

^ Rebased to solve merge conflicts

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors try cancel
@bors try

@rust-bors

rust-borsBot commented Mar 2, 2026

Copy link
Copy Markdown
Contributor

Try build cancelled. Cancelled workflows:

@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Mar 2, 2026

@GuillaumeGomezGuillaumeGomez left a comment

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github doesn't allow to approve your own PR but your changes look good to me, thanks!

View changes since this review

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e2bd8b9 (e2bd8b9142745e8d99284919273adec4edb2d3a9, parent: 8ddf4ef064fb702fed0f3d239ec8d0bac607484e)

@rust-timer

This comment has been minimized.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e2bd8b9): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.0%[0.0%, 0.0%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (primary 1.9%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
2.5%[1.7%, 3.4%]4
Regressions ❌
(secondary)
3.2%[3.2%, 3.2%]1
Improvements ✅
(primary)
-0.7%[-0.7%, -0.7%]1
Improvements ✅
(secondary)
-1.8%[-2.3%, -1.2%]2
All ❌✅ (primary)1.9%[-0.7%, 3.4%]5

Cycles

Results (secondary 4.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.9%[3.4%, 6.4%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
--0
All ❌✅ (primary)--0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 480.113s -> 479.022s (-0.23%)
Artifact size: 396.96 MiB -> 394.98 MiB (-0.50%)

@rustbotrustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Mar 3, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-borsBot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 8a824ee has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Mar 3, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 3, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- #152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- #153227 (Don’t report missing fields in struct exprs with syntax errors.)
- #153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- #152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- #153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- #153034 (Remove unhelpful hint from trivial bound errors)
- #153152 (Migration of LintDiagnostic - part 5)
- #153177 (disable the ptr_fragment_in_final test on s390x)
- #153221 (Add release notes for 1.94.0)
- #153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- #153297 (Update the name of the Hermit operating system)
- #153309 (Cleanup of c-variadic link test)
@rust-bors
rust-borsBot merged commit 4a56a45 into rust-lang:mainMar 3, 2026
12 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 3, 2026
rust-timer added a commit that referenced this pull request Mar 3, 2026
Rollup merge of #153152 - GuillaumeGomez:migrate-diag, r=JonathanBrouwer
Migration of LintDiagnostic - part 5
Part of #153099.
With this, `rust_lint` is finally done, although the change of API of `decorate_builtin_lint` impacted a few other crates, although minimal, still needed to be mentioned.
r? @JonathanBrouwer
@fmease

Copy link
Copy Markdown
Member

Thanks a bunch for addressing the perf regression, @JonathanBrouwer 🙏❤️

@GuillaumeGomez
GuillaumeGomez deleted the migrate-diag branch March 3, 2026 13:34
@GuillaumeGomezGuillaumeGomez changed the title Migration of LintDiagnostic - part 5Migration of LintDiagnostic - part 5Mar 3, 2026
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Aug 17, 2026
…uwer
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#152941 (prefer actual ABI-controling fields over target.abi when making ABI decisions)
- rust-lang/rust#153227 (Don’t report missing fields in struct exprs with syntax errors.)
- rust-lang/rust#153265 (Clarified doc comments + added tests confirming current behavior for intersperse/intersperse_with)
- rust-lang/rust#152966 (Migrate 11 tests from tests/ui/issues to specific directories)
- rust-lang/rust#153003 (rustdoc: make `--emit` and `--out-dir` mimic rustc)
- rust-lang/rust#153034 (Remove unhelpful hint from trivial bound errors)
- rust-lang/rust#153152 (Migration of LintDiagnostic - part 5)
- rust-lang/rust#153177 (disable the ptr_fragment_in_final test on s390x)
- rust-lang/rust#153221 (Add release notes for 1.94.0)
- rust-lang/rust#153279 (feat: Provide an '.item_kind()' method on ItemEnum)
- rust-lang/rust#153297 (Update the name of the Hermit operating system)
- rust-lang/rust#153309 (Cleanup of c-variadic link test)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@GuillaumeGomez@rustbot@JonathanBrouwer@rust-timer@rust-log-analyzer@fmease