Remove CycleErrorHandling. - #153707

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling
Mar 13, 2026
Merged

Remove CycleErrorHandling.#153707
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling

Conversation

@nnethercote

@nnethercotennethercote commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR removes the cycle_* query modifiers and CycleErrorHandling. Some good simplicity wins. Details in individual commits.

r? @Zalathar

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Zalathar is not on the review rotation at the moment.
They may take a while to respond.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/from_cycle_error.rs Outdated
@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from bff405c to a95dd41CompareMarch 12, 2026 01:53
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from a95dd41 to 58cc179CompareMarch 12, 2026 21:41
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/plumbing.rs
@Zalathar

Copy link
Copy Markdown
Member

The current PR name (and corresponding commit message) is strange to me, especially since it doesn't even mention how or why the signature of value_from_cycle_error is changing.

Perhaps it would make more sense to frame this PR as removing cycle_delay_bug (the last remaining cycle_* modifier), with the changes to value_from_cycle_error being a necessary detail of that removal.

@Zalathar

Copy link
Copy Markdown
Member

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

@nnethercotennethercote changed the title Change value_from_cycle_error signature.Remove CycleErrorHandling.Mar 13, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added the requested comment and renamed the PR title/commit message title.

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

Yes. The from_cycle_error stuff has been undergoing rapid changes and specialize_query_vtables was a hacky but expedient way to make progress. A query modifier would be more principled and keep more of the query specifics within the rustc_queries! macro. The tricky part is deciding the syntax of the new query modifier, because the custom operations are more complex than those for desc and cache_on_disk_if, and making changes on those hasn't been straightforward.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 58cc179 to cba21abCompareMarch 13, 2026 05:56
@Zalathar

Copy link
Copy Markdown
Member

r=me, but this will probably need a rebase after #153428.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from cba21ab to 4938802CompareMarch 13, 2026 08:33
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4938802 has been approved by Zalathar

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-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2026
@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 13, 2026
@rust-bors

This comment has been minimized.

Its last meaningful uses were removed in rust-lang#153493.
Currently if a cycle error occurs the error is created, then handled
according to `CycleErrorHandling` (which comes from the
`cycle_delay_bug` query modifer, or lack thereof), and then
`value_from_cycle_error` is called.
This commit changes things so the error is created and then just passed
to `value_from_cycle_error`. This gives `value_from_cycle_error` full
control over how it's handled, eliminating the need for
`CycleErrorHandling`. This makes things simpler overall.
@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 4938802 to c6c150bCompareMarch 13, 2026 11:04
@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.

@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c6c150b has been approved by Zalathar

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 13, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 13, 2026
…uwer
Rollup of 7 pull requests
Successful merges:
- #153650 (Streamline active job collection.)
- #153707 (Remove `CycleErrorHandling`.)
- #153384 (Add missing safety doc for CString::from_vec_unchecked and async_drop_in_place)
- #153752 (fix(delegation): Filter Out Module Segments in Generic Args Inheritance)
- #153797 (Compiletest: Fix compare-output-by-lines directive)
- #153810 (compiletest: Use PYTHONPATH for lldb too, not only gdb)
- #153820 (Rename `opt_span_diag_lint` into `opt_span_lint` and remove `emit_diag_lint`)
@rust-bors
rust-borsBot merged commit a77d5c9 into rust-lang:mainMar 13, 2026
11 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 13, 2026
@nnethercote
nnethercote deleted the rm-CycleErrorHandling branch March 13, 2026 22:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-systemArea: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@nnethercote@rustbot@Zalathar@petrochenkov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} 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

Remove CycleErrorHandling. - #153707

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling
Mar 13, 2026
Merged

Remove CycleErrorHandling.#153707
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling

Conversation

@nnethercote

@nnethercotennethercote commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR removes the cycle_* query modifiers and CycleErrorHandling. Some good simplicity wins. Details in individual commits.

r? @Zalathar

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Zalathar is not on the review rotation at the moment.
They may take a while to respond.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/from_cycle_error.rs Outdated
@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from bff405c to a95dd41CompareMarch 12, 2026 01:53
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from a95dd41 to 58cc179CompareMarch 12, 2026 21:41
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/plumbing.rs
@Zalathar

Copy link
Copy Markdown
Member

The current PR name (and corresponding commit message) is strange to me, especially since it doesn't even mention how or why the signature of value_from_cycle_error is changing.

Perhaps it would make more sense to frame this PR as removing cycle_delay_bug (the last remaining cycle_* modifier), with the changes to value_from_cycle_error being a necessary detail of that removal.

@Zalathar

Copy link
Copy Markdown
Member

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

@nnethercotennethercote changed the title Change value_from_cycle_error signature.Remove CycleErrorHandling.Mar 13, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added the requested comment and renamed the PR title/commit message title.

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

Yes. The from_cycle_error stuff has been undergoing rapid changes and specialize_query_vtables was a hacky but expedient way to make progress. A query modifier would be more principled and keep more of the query specifics within the rustc_queries! macro. The tricky part is deciding the syntax of the new query modifier, because the custom operations are more complex than those for desc and cache_on_disk_if, and making changes on those hasn't been straightforward.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 58cc179 to cba21abCompareMarch 13, 2026 05:56
@Zalathar

Copy link
Copy Markdown
Member

r=me, but this will probably need a rebase after #153428.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from cba21ab to 4938802CompareMarch 13, 2026 08:33
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4938802 has been approved by Zalathar

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-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2026
@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 13, 2026
@rust-bors

This comment has been minimized.

Its last meaningful uses were removed in rust-lang#153493.
Currently if a cycle error occurs the error is created, then handled
according to `CycleErrorHandling` (which comes from the
`cycle_delay_bug` query modifer, or lack thereof), and then
`value_from_cycle_error` is called.
This commit changes things so the error is created and then just passed
to `value_from_cycle_error`. This gives `value_from_cycle_error` full
control over how it's handled, eliminating the need for
`CycleErrorHandling`. This makes things simpler overall.
@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 4938802 to c6c150bCompareMarch 13, 2026 11:04
@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.

@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c6c150b has been approved by Zalathar

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 13, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 13, 2026
…uwer
Rollup of 7 pull requests
Successful merges:
- #153650 (Streamline active job collection.)
- #153707 (Remove `CycleErrorHandling`.)
- #153384 (Add missing safety doc for CString::from_vec_unchecked and async_drop_in_place)
- #153752 (fix(delegation): Filter Out Module Segments in Generic Args Inheritance)
- #153797 (Compiletest: Fix compare-output-by-lines directive)
- #153810 (compiletest: Use PYTHONPATH for lldb too, not only gdb)
- #153820 (Rename `opt_span_diag_lint` into `opt_span_lint` and remove `emit_diag_lint`)
@rust-bors
rust-borsBot merged commit a77d5c9 into rust-lang:mainMar 13, 2026
11 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 13, 2026
@nnethercote
nnethercote deleted the rm-CycleErrorHandling branch March 13, 2026 22:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-systemArea: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

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

Remove CycleErrorHandling. - #153707

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling
Mar 13, 2026
Merged

Remove CycleErrorHandling.#153707
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling

Conversation

@nnethercote

@nnethercotennethercote commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR removes the cycle_* query modifiers and CycleErrorHandling. Some good simplicity wins. Details in individual commits.

r? @Zalathar

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Zalathar is not on the review rotation at the moment.
They may take a while to respond.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/from_cycle_error.rs Outdated
@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from bff405c to a95dd41CompareMarch 12, 2026 01:53
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from a95dd41 to 58cc179CompareMarch 12, 2026 21:41
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/plumbing.rs
@Zalathar

Copy link
Copy Markdown
Member

The current PR name (and corresponding commit message) is strange to me, especially since it doesn't even mention how or why the signature of value_from_cycle_error is changing.

Perhaps it would make more sense to frame this PR as removing cycle_delay_bug (the last remaining cycle_* modifier), with the changes to value_from_cycle_error being a necessary detail of that removal.

@Zalathar

Copy link
Copy Markdown
Member

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

@nnethercotennethercote changed the title Change value_from_cycle_error signature.Remove CycleErrorHandling.Mar 13, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added the requested comment and renamed the PR title/commit message title.

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

Yes. The from_cycle_error stuff has been undergoing rapid changes and specialize_query_vtables was a hacky but expedient way to make progress. A query modifier would be more principled and keep more of the query specifics within the rustc_queries! macro. The tricky part is deciding the syntax of the new query modifier, because the custom operations are more complex than those for desc and cache_on_disk_if, and making changes on those hasn't been straightforward.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 58cc179 to cba21abCompareMarch 13, 2026 05:56
@Zalathar

Copy link
Copy Markdown
Member

r=me, but this will probably need a rebase after #153428.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from cba21ab to 4938802CompareMarch 13, 2026 08:33
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4938802 has been approved by Zalathar

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-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2026
@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 13, 2026
@rust-bors

This comment has been minimized.

Its last meaningful uses were removed in rust-lang#153493.
Currently if a cycle error occurs the error is created, then handled
according to `CycleErrorHandling` (which comes from the
`cycle_delay_bug` query modifer, or lack thereof), and then
`value_from_cycle_error` is called.
This commit changes things so the error is created and then just passed
to `value_from_cycle_error`. This gives `value_from_cycle_error` full
control over how it's handled, eliminating the need for
`CycleErrorHandling`. This makes things simpler overall.
@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 4938802 to c6c150bCompareMarch 13, 2026 11:04
@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.

@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c6c150b has been approved by Zalathar

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 13, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 13, 2026
…uwer
Rollup of 7 pull requests
Successful merges:
- #153650 (Streamline active job collection.)
- #153707 (Remove `CycleErrorHandling`.)
- #153384 (Add missing safety doc for CString::from_vec_unchecked and async_drop_in_place)
- #153752 (fix(delegation): Filter Out Module Segments in Generic Args Inheritance)
- #153797 (Compiletest: Fix compare-output-by-lines directive)
- #153810 (compiletest: Use PYTHONPATH for lldb too, not only gdb)
- #153820 (Rename `opt_span_diag_lint` into `opt_span_lint` and remove `emit_diag_lint`)
@rust-bors
rust-borsBot merged commit a77d5c9 into rust-lang:mainMar 13, 2026
11 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 13, 2026
@nnethercote
nnethercote deleted the rm-CycleErrorHandling branch March 13, 2026 22:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-systemArea: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

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

Remove CycleErrorHandling. - #153707

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling
Mar 13, 2026
Merged

Remove CycleErrorHandling.#153707
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling

Conversation

@nnethercote

@nnethercotennethercote commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR removes the cycle_* query modifiers and CycleErrorHandling. Some good simplicity wins. Details in individual commits.

r? @Zalathar

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Zalathar is not on the review rotation at the moment.
They may take a while to respond.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/from_cycle_error.rs Outdated
@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from bff405c to a95dd41CompareMarch 12, 2026 01:53
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from a95dd41 to 58cc179CompareMarch 12, 2026 21:41
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/plumbing.rs
@Zalathar

Copy link
Copy Markdown
Member

The current PR name (and corresponding commit message) is strange to me, especially since it doesn't even mention how or why the signature of value_from_cycle_error is changing.

Perhaps it would make more sense to frame this PR as removing cycle_delay_bug (the last remaining cycle_* modifier), with the changes to value_from_cycle_error being a necessary detail of that removal.

@Zalathar

Copy link
Copy Markdown
Member

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

@nnethercotennethercote changed the title Change value_from_cycle_error signature.Remove CycleErrorHandling.Mar 13, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added the requested comment and renamed the PR title/commit message title.

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

Yes. The from_cycle_error stuff has been undergoing rapid changes and specialize_query_vtables was a hacky but expedient way to make progress. A query modifier would be more principled and keep more of the query specifics within the rustc_queries! macro. The tricky part is deciding the syntax of the new query modifier, because the custom operations are more complex than those for desc and cache_on_disk_if, and making changes on those hasn't been straightforward.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 58cc179 to cba21abCompareMarch 13, 2026 05:56
@Zalathar

Copy link
Copy Markdown
Member

r=me, but this will probably need a rebase after #153428.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from cba21ab to 4938802CompareMarch 13, 2026 08:33
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4938802 has been approved by Zalathar

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-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2026
@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 13, 2026
@rust-bors

This comment has been minimized.

Its last meaningful uses were removed in rust-lang#153493.
Currently if a cycle error occurs the error is created, then handled
according to `CycleErrorHandling` (which comes from the
`cycle_delay_bug` query modifer, or lack thereof), and then
`value_from_cycle_error` is called.
This commit changes things so the error is created and then just passed
to `value_from_cycle_error`. This gives `value_from_cycle_error` full
control over how it's handled, eliminating the need for
`CycleErrorHandling`. This makes things simpler overall.
@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 4938802 to c6c150bCompareMarch 13, 2026 11:04
@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.

@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c6c150b has been approved by Zalathar

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 13, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 13, 2026
…uwer
Rollup of 7 pull requests
Successful merges:
- #153650 (Streamline active job collection.)
- #153707 (Remove `CycleErrorHandling`.)
- #153384 (Add missing safety doc for CString::from_vec_unchecked and async_drop_in_place)
- #153752 (fix(delegation): Filter Out Module Segments in Generic Args Inheritance)
- #153797 (Compiletest: Fix compare-output-by-lines directive)
- #153810 (compiletest: Use PYTHONPATH for lldb too, not only gdb)
- #153820 (Rename `opt_span_diag_lint` into `opt_span_lint` and remove `emit_diag_lint`)
@rust-bors
rust-borsBot merged commit a77d5c9 into rust-lang:mainMar 13, 2026
11 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 13, 2026
@nnethercote
nnethercote deleted the rm-CycleErrorHandling branch March 13, 2026 22:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-systemArea: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@nnethercote@rustbot@Zalathar@petrochenkov
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } 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

Remove CycleErrorHandling. - #153707

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling
Mar 13, 2026
Merged

Remove CycleErrorHandling.#153707
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling

Conversation

@nnethercote

@nnethercotennethercote commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR removes the cycle_* query modifiers and CycleErrorHandling. Some good simplicity wins. Details in individual commits.

r? @Zalathar

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Zalathar is not on the review rotation at the moment.
They may take a while to respond.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/from_cycle_error.rs Outdated
@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from bff405c to a95dd41CompareMarch 12, 2026 01:53
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from a95dd41 to 58cc179CompareMarch 12, 2026 21:41
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/plumbing.rs
@Zalathar

Copy link
Copy Markdown
Member

The current PR name (and corresponding commit message) is strange to me, especially since it doesn't even mention how or why the signature of value_from_cycle_error is changing.

Perhaps it would make more sense to frame this PR as removing cycle_delay_bug (the last remaining cycle_* modifier), with the changes to value_from_cycle_error being a necessary detail of that removal.

@Zalathar

Copy link
Copy Markdown
Member

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

@nnethercotennethercote changed the title Change value_from_cycle_error signature.Remove CycleErrorHandling.Mar 13, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added the requested comment and renamed the PR title/commit message title.

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

Yes. The from_cycle_error stuff has been undergoing rapid changes and specialize_query_vtables was a hacky but expedient way to make progress. A query modifier would be more principled and keep more of the query specifics within the rustc_queries! macro. The tricky part is deciding the syntax of the new query modifier, because the custom operations are more complex than those for desc and cache_on_disk_if, and making changes on those hasn't been straightforward.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 58cc179 to cba21abCompareMarch 13, 2026 05:56
@Zalathar

Copy link
Copy Markdown
Member

r=me, but this will probably need a rebase after #153428.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from cba21ab to 4938802CompareMarch 13, 2026 08:33
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4938802 has been approved by Zalathar

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-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2026
@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 13, 2026
@rust-bors

This comment has been minimized.

Its last meaningful uses were removed in rust-lang#153493.
Currently if a cycle error occurs the error is created, then handled
according to `CycleErrorHandling` (which comes from the
`cycle_delay_bug` query modifer, or lack thereof), and then
`value_from_cycle_error` is called.
This commit changes things so the error is created and then just passed
to `value_from_cycle_error`. This gives `value_from_cycle_error` full
control over how it's handled, eliminating the need for
`CycleErrorHandling`. This makes things simpler overall.
@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 4938802 to c6c150bCompareMarch 13, 2026 11:04
@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.

@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c6c150b has been approved by Zalathar

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 13, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 13, 2026
…uwer
Rollup of 7 pull requests
Successful merges:
- #153650 (Streamline active job collection.)
- #153707 (Remove `CycleErrorHandling`.)
- #153384 (Add missing safety doc for CString::from_vec_unchecked and async_drop_in_place)
- #153752 (fix(delegation): Filter Out Module Segments in Generic Args Inheritance)
- #153797 (Compiletest: Fix compare-output-by-lines directive)
- #153810 (compiletest: Use PYTHONPATH for lldb too, not only gdb)
- #153820 (Rename `opt_span_diag_lint` into `opt_span_lint` and remove `emit_diag_lint`)
@rust-bors
rust-borsBot merged commit a77d5c9 into rust-lang:mainMar 13, 2026
11 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 13, 2026
@nnethercote
nnethercote deleted the rm-CycleErrorHandling branch March 13, 2026 22:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-systemArea: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

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

Remove CycleErrorHandling. - #153707

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling
Mar 13, 2026
Merged

Remove CycleErrorHandling.#153707
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling

Conversation

@nnethercote

@nnethercotennethercote commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR removes the cycle_* query modifiers and CycleErrorHandling. Some good simplicity wins. Details in individual commits.

r? @Zalathar

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Zalathar is not on the review rotation at the moment.
They may take a while to respond.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/from_cycle_error.rs Outdated
@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from bff405c to a95dd41CompareMarch 12, 2026 01:53
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from a95dd41 to 58cc179CompareMarch 12, 2026 21:41
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/plumbing.rs
@Zalathar

Copy link
Copy Markdown
Member

The current PR name (and corresponding commit message) is strange to me, especially since it doesn't even mention how or why the signature of value_from_cycle_error is changing.

Perhaps it would make more sense to frame this PR as removing cycle_delay_bug (the last remaining cycle_* modifier), with the changes to value_from_cycle_error being a necessary detail of that removal.

@Zalathar

Copy link
Copy Markdown
Member

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

@nnethercotennethercote changed the title Change value_from_cycle_error signature.Remove CycleErrorHandling.Mar 13, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added the requested comment and renamed the PR title/commit message title.

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

Yes. The from_cycle_error stuff has been undergoing rapid changes and specialize_query_vtables was a hacky but expedient way to make progress. A query modifier would be more principled and keep more of the query specifics within the rustc_queries! macro. The tricky part is deciding the syntax of the new query modifier, because the custom operations are more complex than those for desc and cache_on_disk_if, and making changes on those hasn't been straightforward.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 58cc179 to cba21abCompareMarch 13, 2026 05:56
@Zalathar

Copy link
Copy Markdown
Member

r=me, but this will probably need a rebase after #153428.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from cba21ab to 4938802CompareMarch 13, 2026 08:33
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4938802 has been approved by Zalathar

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-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2026
@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 13, 2026
@rust-bors

This comment has been minimized.

Its last meaningful uses were removed in rust-lang#153493.
Currently if a cycle error occurs the error is created, then handled
according to `CycleErrorHandling` (which comes from the
`cycle_delay_bug` query modifer, or lack thereof), and then
`value_from_cycle_error` is called.
This commit changes things so the error is created and then just passed
to `value_from_cycle_error`. This gives `value_from_cycle_error` full
control over how it's handled, eliminating the need for
`CycleErrorHandling`. This makes things simpler overall.
@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 4938802 to c6c150bCompareMarch 13, 2026 11:04
@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.

@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c6c150b has been approved by Zalathar

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 13, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 13, 2026
…uwer
Rollup of 7 pull requests
Successful merges:
- #153650 (Streamline active job collection.)
- #153707 (Remove `CycleErrorHandling`.)
- #153384 (Add missing safety doc for CString::from_vec_unchecked and async_drop_in_place)
- #153752 (fix(delegation): Filter Out Module Segments in Generic Args Inheritance)
- #153797 (Compiletest: Fix compare-output-by-lines directive)
- #153810 (compiletest: Use PYTHONPATH for lldb too, not only gdb)
- #153820 (Rename `opt_span_diag_lint` into `opt_span_lint` and remove `emit_diag_lint`)
@rust-bors
rust-borsBot merged commit a77d5c9 into rust-lang:mainMar 13, 2026
11 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 13, 2026
@nnethercote
nnethercote deleted the rm-CycleErrorHandling branch March 13, 2026 22:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-systemArea: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

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

Remove CycleErrorHandling. - #153707

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling
Mar 13, 2026
Merged

Remove CycleErrorHandling.#153707
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling

Conversation

@nnethercote

@nnethercotennethercote commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR removes the cycle_* query modifiers and CycleErrorHandling. Some good simplicity wins. Details in individual commits.

r? @Zalathar

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Zalathar is not on the review rotation at the moment.
They may take a while to respond.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/from_cycle_error.rs Outdated
@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from bff405c to a95dd41CompareMarch 12, 2026 01:53
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from a95dd41 to 58cc179CompareMarch 12, 2026 21:41
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/plumbing.rs
@Zalathar

Copy link
Copy Markdown
Member

The current PR name (and corresponding commit message) is strange to me, especially since it doesn't even mention how or why the signature of value_from_cycle_error is changing.

Perhaps it would make more sense to frame this PR as removing cycle_delay_bug (the last remaining cycle_* modifier), with the changes to value_from_cycle_error being a necessary detail of that removal.

@Zalathar

Copy link
Copy Markdown
Member

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

@nnethercotennethercote changed the title Change value_from_cycle_error signature.Remove CycleErrorHandling.Mar 13, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added the requested comment and renamed the PR title/commit message title.

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

Yes. The from_cycle_error stuff has been undergoing rapid changes and specialize_query_vtables was a hacky but expedient way to make progress. A query modifier would be more principled and keep more of the query specifics within the rustc_queries! macro. The tricky part is deciding the syntax of the new query modifier, because the custom operations are more complex than those for desc and cache_on_disk_if, and making changes on those hasn't been straightforward.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 58cc179 to cba21abCompareMarch 13, 2026 05:56
@Zalathar

Copy link
Copy Markdown
Member

r=me, but this will probably need a rebase after #153428.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from cba21ab to 4938802CompareMarch 13, 2026 08:33
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4938802 has been approved by Zalathar

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-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2026
@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 13, 2026
@rust-bors

This comment has been minimized.

Its last meaningful uses were removed in rust-lang#153493.
Currently if a cycle error occurs the error is created, then handled
according to `CycleErrorHandling` (which comes from the
`cycle_delay_bug` query modifer, or lack thereof), and then
`value_from_cycle_error` is called.
This commit changes things so the error is created and then just passed
to `value_from_cycle_error`. This gives `value_from_cycle_error` full
control over how it's handled, eliminating the need for
`CycleErrorHandling`. This makes things simpler overall.
@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 4938802 to c6c150bCompareMarch 13, 2026 11:04
@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.

@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c6c150b has been approved by Zalathar

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 13, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 13, 2026
…uwer
Rollup of 7 pull requests
Successful merges:
- #153650 (Streamline active job collection.)
- #153707 (Remove `CycleErrorHandling`.)
- #153384 (Add missing safety doc for CString::from_vec_unchecked and async_drop_in_place)
- #153752 (fix(delegation): Filter Out Module Segments in Generic Args Inheritance)
- #153797 (Compiletest: Fix compare-output-by-lines directive)
- #153810 (compiletest: Use PYTHONPATH for lldb too, not only gdb)
- #153820 (Rename `opt_span_diag_lint` into `opt_span_lint` and remove `emit_diag_lint`)
@rust-bors
rust-borsBot merged commit a77d5c9 into rust-lang:mainMar 13, 2026
11 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 13, 2026
@nnethercote
nnethercote deleted the rm-CycleErrorHandling branch March 13, 2026 22:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-systemArea: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

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

Remove CycleErrorHandling. - #153707

Merged
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling
Mar 13, 2026
Merged

Remove CycleErrorHandling.#153707
rust-bors[bot] merged 2 commits into
rust-lang:mainfrom
nnethercote:rm-CycleErrorHandling

Conversation

@nnethercote

@nnethercotennethercote commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

View all comments

This PR removes the cycle_* query modifiers and CycleErrorHandling. Some good simplicity wins. Details in individual commits.

r? @Zalathar

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 11, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

Zalathar is not on the review rotation at the moment.
They may take a while to respond.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/from_cycle_error.rs Outdated
@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from bff405c to a95dd41CompareMarch 12, 2026 01:53
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from a95dd41 to 58cc179CompareMarch 12, 2026 21:41
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

Comment threadcompiler/rustc_query_impl/src/plumbing.rs
@Zalathar

Copy link
Copy Markdown
Member

The current PR name (and corresponding commit message) is strange to me, especially since it doesn't even mention how or why the signature of value_from_cycle_error is changing.

Perhaps it would make more sense to frame this PR as removing cycle_delay_bug (the last remaining cycle_* modifier), with the changes to value_from_cycle_error being a necessary detail of that removal.

@Zalathar

Copy link
Copy Markdown
Member

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

@nnethercotennethercote changed the title Change value_from_cycle_error signature.Remove CycleErrorHandling.Mar 13, 2026
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added the requested comment and renamed the PR title/commit message title.

(In the future, I wonder if we want to replace the specialize_query_vtables function with a new query modifier that causes QueryVTable::value_from_cycle_error to use a non-default impl in from_cycle_error, named after the query.)

Yes. The from_cycle_error stuff has been undergoing rapid changes and specialize_query_vtables was a hacky but expedient way to make progress. A query modifier would be more principled and keep more of the query specifics within the rustc_queries! macro. The tricky part is deciding the syntax of the new query modifier, because the custom operations are more complex than those for desc and cache_on_disk_if, and making changes on those hasn't been straightforward.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 58cc179 to cba21abCompareMarch 13, 2026 05:56
@Zalathar

Copy link
Copy Markdown
Member

r=me, but this will probably need a rebase after #153428.

@rust-bors

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from cba21ab to 4938802CompareMarch 13, 2026 08:33
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4938802 has been approved by Zalathar

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-review Status: Awaiting review from the assignee but also interested parties. labels Mar 13, 2026
@rust-borsrust-borsBot 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Mar 13, 2026
@rust-bors

This comment has been minimized.

Its last meaningful uses were removed in rust-lang#153493.
Currently if a cycle error occurs the error is created, then handled
according to `CycleErrorHandling` (which comes from the
`cycle_delay_bug` query modifer, or lack thereof), and then
`value_from_cycle_error` is called.
This commit changes things so the error is created and then just passed
to `value_from_cycle_error`. This gives `value_from_cycle_error` full
control over how it's handled, eliminating the need for
`CycleErrorHandling`. This makes things simpler overall.
@nnethercote
nnethercoteforce-pushed the rm-CycleErrorHandling branch from 4938802 to c6c150bCompareMarch 13, 2026 11:04
@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.

@rustbot

Copy link
Copy Markdown
Collaborator

⚠️Warning⚠️

  • There are issue links (such as #123) in the commit messages of the following commits.
    Please move them to the PR description, to avoid spamming the issues with references to the commit, and so this bot can automatically canonicalize them to avoid issues with subtree.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I rebased.

@bors r=Zalathar

@rust-bors

rust-borsBot commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

📌 Commit c6c150b has been approved by Zalathar

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 13, 2026
rust-borsBot pushed a commit that referenced this pull request Mar 13, 2026
…uwer
Rollup of 7 pull requests
Successful merges:
- #153650 (Streamline active job collection.)
- #153707 (Remove `CycleErrorHandling`.)
- #153384 (Add missing safety doc for CString::from_vec_unchecked and async_drop_in_place)
- #153752 (fix(delegation): Filter Out Module Segments in Generic Args Inheritance)
- #153797 (Compiletest: Fix compare-output-by-lines directive)
- #153810 (compiletest: Use PYTHONPATH for lldb too, not only gdb)
- #153820 (Rename `opt_span_diag_lint` into `opt_span_lint` and remove `emit_diag_lint`)
@rust-bors
rust-borsBot merged commit a77d5c9 into rust-lang:mainMar 13, 2026
11 checks passed
@rustbotrustbot added this to the 1.96.0 milestone Mar 13, 2026
@nnethercote
nnethercote deleted the rm-CycleErrorHandling branch March 13, 2026 22:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-query-systemArea: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@nnethercote@rustbot@Zalathar@petrochenkov