Skip to content

Improved handling for cycles within the query system itself - #154387

Open
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles
Open

Improved handling for cycles within the query system itself#154387
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles

Conversation

@jyn514

@jyn514jyn514 commented Mar 25, 2026

Copy link
Copy Markdown
Member

View all comments

This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:

structDriver;implCallbacksforDriver{fnconfig(&mutself,config:&mut interface::Config){
config.override_queries = Some(|_sess, providers| {
providers.queries.codegen_fn_attrs = |tcx, def_id| {let _ = tcx.hir_crate_items(());(rustc_interface::DEFAULT_QUERY_PROVIDERS.queries.codegen_fn_attrs)(tcx, def_id)};});}}fnmain() -> ExitCode{
rustc_driver::install_ice_hook("https://github.com/ferrocene/ferrocene/issues/new", |_| ());let handler = EarlyDiagCtxt::new(ErrorOutputType::default());
rustc_driver::init_rustc_env_logger(&handler);
rustc_driver::catch_with_exit_code(move || {let args:Vec<String> = std::env::args().collect();
rustc_driver::run_compiler(&args,&mutDriver)})}

Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from tests/ui/delegation/bad-resolve):

#![feature(fn_delegation)]#![allow(incomplete_features)]traitTrait{typeType;fnbar(){}}structF;implTraitforF{typeType = i32;}structS(F);implTraitforS{
reuse <FasTrait>::bar;}fnmain(){}

I'll step through how this program behaves on each commit in this PR.


  1. Main branch: Hangs indefinitely with no output.

  2. After first commit (adding safeguards to ensure_sufficient_stack):
    a. First, it prints a stacktrace that cuts off early
    b. Then it hangs forever.

  3. After calling abort if ensure_sufficient_stack fails:
    a. First, it prints a ~250 frame stacktrace,
    including both the first and last hundred frames.
    b. Then it exits.

  4. After adding debug logging, shows the stack trace from above, but first:
    a. Prints a trace of the query execution
    b. Shows the stacktrace from above.

  5. After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:

error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^

Here's an extract of that query trace:

Details
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_query_impl::execution::try_execute_query query="def_span"
...

I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within def_span.
In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!

I'm not sure if the bug is in the implementation of lower_delayed_owner, in the query system, or merely in the fact that lower_delay_owner is a prerequisite of hir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.

In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to lower_delayed_owner, not the query system itself.

cc @petrochenkov@aerooneqq@Zalathar

@rustbot

Copy link
Copy Markdown
Collaborator

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @JohnTitor

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

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

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

@jyn514

Copy link
Copy Markdown
MemberAuthor

hm. maybe r? @Zalathar ?

@rustbotrustbot assigned Zalathar and unassigned JohnTitorMar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion.

Comment threadcompiler/rustc_data_structures/src/stack.rs Outdated
Comment threadcompiler/rustc_data_structures/src/stack.rs
@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jyn514 You could try your test failures with #154389. We have some failing tests on main which that detects and the cause might be similar.

@jyn514

Copy link
Copy Markdown
MemberAuthor

I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me.

@jyn514

Copy link
Copy Markdown
MemberAuthor

Here's a trace of the queries that caused the cycle for /query-cycle-issue-124901.rs:

 rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_crate"
rustc_query_impl::execution::try_execute_query query="early_lint_checks"
rustc_query_impl::execution::try_execute_query query="resolver_for_lowering_raw"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating resolver_for_lowering_raw!
rustc_middle::queries::default_span self=resolver_for_lowering_raw(())
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:3 ~ query_cycle_issue_124901[dbc8]::Default))
rustc_middle::queries::default_span self=hir_crate(())
rustc_middle::queries::default_span self=early_lint_checks(())

Previously, default_span(local_def_id_to_hir_id) would call into def_span(def_id), which would call back into local_def_id_to_hir_id, causing a follow-up cycle. I don't think that follow-up cycle is useful to anyone.

return span
}
if let TaggedQueryKey::def_span(..) = self {
if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self {

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.

hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.

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.

Hm, I'm not sure how to do this. I found rustc_middle_query::inner::try_get_cached, so I thought I could do something like try_get_cached(TaggedQueryKey::def_span(key)).is_some(). But each query might have a different input type, and I don't know how to get from that other type back to a DefId. I don't see how to do this without modifying the implementation of def_span itself.

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.

Maybe we need something like QueryKey::def_id()?

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.

oh lol that already exists

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.

ok #154389 solves this in a completely different way and I'm not sure my approach makes sense anymore, so I'm just going to drop the last commit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It doesn't fix any query cycles though, just improves the reporting.

@rust-bors

This comment has been minimized.

jyn514 added 3 commits May 1, 2026 06:56
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
@jyn514
jyn514force-pushed the jyn/query-cycles branch from 55ee14a to 5cfaeebCompareMay 1, 2026 06:58
@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.

@jyn514

Copy link
Copy Markdown
MemberAuthor

r? @Zoxc

@rustbotrustbot assigned Zoxc and unassigned ZalatharMay 1, 2026
@Zoxc

Zoxc commented May 2, 2026

Copy link
Copy Markdown
Contributor

It kind of seems like this could be an upstream feature of stacker. cc @nagisa

For 64-bit platforms, we could just skip stacker as we just have fixed size thread stacks again.

}
TIMES_GROWN.set(times + 1);
let out = stacker::grow(STACK_PER_RECURSION, f);
TIMES_GROWN.set(times);

@programmerjakeprogrammerjakeJul 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't this be using a drop-guard to update the value properly when unwinding?

View changes since the review

@rust-bors

rust-borsBot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #160535) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

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)A-tidyArea: The tidy toolS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)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.

9 participants

@jyn514@rustbot@rust-log-analyzer@Zoxc@programmerjake@bjorn3@petrochenkov@Zalathar@JohnTitor
, '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" + '
Improved handling for cycles within the query system itself by jyn514 · Pull Request #154387 · rust-lang/rust · GitHub
Skip to content

Improved handling for cycles within the query system itself - #154387

Open
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles
Open

Improved handling for cycles within the query system itself#154387
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles

Conversation

@jyn514

@jyn514jyn514 commented Mar 25, 2026

Copy link
Copy Markdown
Member

View all comments

This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:

structDriver;implCallbacksforDriver{fnconfig(&mutself,config:&mut interface::Config){
config.override_queries = Some(|_sess, providers| {
providers.queries.codegen_fn_attrs = |tcx, def_id| {let _ = tcx.hir_crate_items(());(rustc_interface::DEFAULT_QUERY_PROVIDERS.queries.codegen_fn_attrs)(tcx, def_id)};});}}fnmain() -> ExitCode{
rustc_driver::install_ice_hook("https://github.com/ferrocene/ferrocene/issues/new", |_| ());let handler = EarlyDiagCtxt::new(ErrorOutputType::default());
rustc_driver::init_rustc_env_logger(&handler);
rustc_driver::catch_with_exit_code(move || {let args:Vec<String> = std::env::args().collect();
rustc_driver::run_compiler(&args,&mutDriver)})}

Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from tests/ui/delegation/bad-resolve):

#![feature(fn_delegation)]#![allow(incomplete_features)]traitTrait{typeType;fnbar(){}}structF;implTraitforF{typeType = i32;}structS(F);implTraitforS{
reuse <FasTrait>::bar;}fnmain(){}

I'll step through how this program behaves on each commit in this PR.


  1. Main branch: Hangs indefinitely with no output.

  2. After first commit (adding safeguards to ensure_sufficient_stack):
    a. First, it prints a stacktrace that cuts off early
    b. Then it hangs forever.

  3. After calling abort if ensure_sufficient_stack fails:
    a. First, it prints a ~250 frame stacktrace,
    including both the first and last hundred frames.
    b. Then it exits.

  4. After adding debug logging, shows the stack trace from above, but first:
    a. Prints a trace of the query execution
    b. Shows the stacktrace from above.

  5. After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:

error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^

Here's an extract of that query trace:

Details
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_query_impl::execution::try_execute_query query="def_span"
...

I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within def_span.
In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!

I'm not sure if the bug is in the implementation of lower_delayed_owner, in the query system, or merely in the fact that lower_delay_owner is a prerequisite of hir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.

In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to lower_delayed_owner, not the query system itself.

cc @petrochenkov@aerooneqq@Zalathar

@rustbot

Copy link
Copy Markdown
Collaborator

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @JohnTitor

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

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

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

@jyn514

Copy link
Copy Markdown
MemberAuthor

hm. maybe r? @Zalathar ?

@rustbotrustbot assigned Zalathar and unassigned JohnTitorMar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion.

Comment threadcompiler/rustc_data_structures/src/stack.rs Outdated
Comment threadcompiler/rustc_data_structures/src/stack.rs
@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jyn514 You could try your test failures with #154389. We have some failing tests on main which that detects and the cause might be similar.

@jyn514

Copy link
Copy Markdown
MemberAuthor

I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me.

@jyn514

Copy link
Copy Markdown
MemberAuthor

Here's a trace of the queries that caused the cycle for /query-cycle-issue-124901.rs:

 rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_crate"
rustc_query_impl::execution::try_execute_query query="early_lint_checks"
rustc_query_impl::execution::try_execute_query query="resolver_for_lowering_raw"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating resolver_for_lowering_raw!
rustc_middle::queries::default_span self=resolver_for_lowering_raw(())
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:3 ~ query_cycle_issue_124901[dbc8]::Default))
rustc_middle::queries::default_span self=hir_crate(())
rustc_middle::queries::default_span self=early_lint_checks(())

Previously, default_span(local_def_id_to_hir_id) would call into def_span(def_id), which would call back into local_def_id_to_hir_id, causing a follow-up cycle. I don't think that follow-up cycle is useful to anyone.

return span
}
if let TaggedQueryKey::def_span(..) = self {
if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self {

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.

hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.

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.

Hm, I'm not sure how to do this. I found rustc_middle_query::inner::try_get_cached, so I thought I could do something like try_get_cached(TaggedQueryKey::def_span(key)).is_some(). But each query might have a different input type, and I don't know how to get from that other type back to a DefId. I don't see how to do this without modifying the implementation of def_span itself.

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.

Maybe we need something like QueryKey::def_id()?

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.

oh lol that already exists

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.

ok #154389 solves this in a completely different way and I'm not sure my approach makes sense anymore, so I'm just going to drop the last commit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It doesn't fix any query cycles though, just improves the reporting.

@rust-bors

This comment has been minimized.

jyn514 added 3 commits May 1, 2026 06:56
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
@jyn514
jyn514force-pushed the jyn/query-cycles branch from 55ee14a to 5cfaeebCompareMay 1, 2026 06:58
@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.

@jyn514

Copy link
Copy Markdown
MemberAuthor

r? @Zoxc

@rustbotrustbot assigned Zoxc and unassigned ZalatharMay 1, 2026
@Zoxc

Zoxc commented May 2, 2026

Copy link
Copy Markdown
Contributor

It kind of seems like this could be an upstream feature of stacker. cc @nagisa

For 64-bit platforms, we could just skip stacker as we just have fixed size thread stacks again.

}
TIMES_GROWN.set(times + 1);
let out = stacker::grow(STACK_PER_RECURSION, f);
TIMES_GROWN.set(times);

@programmerjakeprogrammerjakeJul 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't this be using a drop-guard to update the value properly when unwinding?

View changes since the review

@rust-bors

rust-borsBot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #160535) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

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)A-tidyArea: The tidy toolS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)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.

9 participants

@jyn514@rustbot@rust-log-analyzer@Zoxc@programmerjake@bjorn3@petrochenkov@Zalathar@JohnTitor
, '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('^' + ".*" + ' Improved handling for cycles within the query system itself by jyn514 · Pull Request #154387 · rust-lang/rust · GitHub
Skip to content

Improved handling for cycles within the query system itself - #154387

Open
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles
Open

Improved handling for cycles within the query system itself#154387
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles

Conversation

@jyn514

@jyn514jyn514 commented Mar 25, 2026

Copy link
Copy Markdown
Member

View all comments

This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:

structDriver;implCallbacksforDriver{fnconfig(&mutself,config:&mut interface::Config){
config.override_queries = Some(|_sess, providers| {
providers.queries.codegen_fn_attrs = |tcx, def_id| {let _ = tcx.hir_crate_items(());(rustc_interface::DEFAULT_QUERY_PROVIDERS.queries.codegen_fn_attrs)(tcx, def_id)};});}}fnmain() -> ExitCode{
rustc_driver::install_ice_hook("https://github.com/ferrocene/ferrocene/issues/new", |_| ());let handler = EarlyDiagCtxt::new(ErrorOutputType::default());
rustc_driver::init_rustc_env_logger(&handler);
rustc_driver::catch_with_exit_code(move || {let args:Vec<String> = std::env::args().collect();
rustc_driver::run_compiler(&args,&mutDriver)})}

Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from tests/ui/delegation/bad-resolve):

#![feature(fn_delegation)]#![allow(incomplete_features)]traitTrait{typeType;fnbar(){}}structF;implTraitforF{typeType = i32;}structS(F);implTraitforS{
reuse <FasTrait>::bar;}fnmain(){}

I'll step through how this program behaves on each commit in this PR.


  1. Main branch: Hangs indefinitely with no output.

  2. After first commit (adding safeguards to ensure_sufficient_stack):
    a. First, it prints a stacktrace that cuts off early
    b. Then it hangs forever.

  3. After calling abort if ensure_sufficient_stack fails:
    a. First, it prints a ~250 frame stacktrace,
    including both the first and last hundred frames.
    b. Then it exits.

  4. After adding debug logging, shows the stack trace from above, but first:
    a. Prints a trace of the query execution
    b. Shows the stacktrace from above.

  5. After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:

error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^

Here's an extract of that query trace:

Details
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_query_impl::execution::try_execute_query query="def_span"
...

I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within def_span.
In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!

I'm not sure if the bug is in the implementation of lower_delayed_owner, in the query system, or merely in the fact that lower_delay_owner is a prerequisite of hir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.

In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to lower_delayed_owner, not the query system itself.

cc @petrochenkov@aerooneqq@Zalathar

@rustbot

Copy link
Copy Markdown
Collaborator

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @JohnTitor

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

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

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

@jyn514

Copy link
Copy Markdown
MemberAuthor

hm. maybe r? @Zalathar ?

@rustbotrustbot assigned Zalathar and unassigned JohnTitorMar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion.

Comment threadcompiler/rustc_data_structures/src/stack.rs Outdated
Comment threadcompiler/rustc_data_structures/src/stack.rs
@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jyn514 You could try your test failures with #154389. We have some failing tests on main which that detects and the cause might be similar.

@jyn514

Copy link
Copy Markdown
MemberAuthor

I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me.

@jyn514

Copy link
Copy Markdown
MemberAuthor

Here's a trace of the queries that caused the cycle for /query-cycle-issue-124901.rs:

 rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_crate"
rustc_query_impl::execution::try_execute_query query="early_lint_checks"
rustc_query_impl::execution::try_execute_query query="resolver_for_lowering_raw"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating resolver_for_lowering_raw!
rustc_middle::queries::default_span self=resolver_for_lowering_raw(())
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:3 ~ query_cycle_issue_124901[dbc8]::Default))
rustc_middle::queries::default_span self=hir_crate(())
rustc_middle::queries::default_span self=early_lint_checks(())

Previously, default_span(local_def_id_to_hir_id) would call into def_span(def_id), which would call back into local_def_id_to_hir_id, causing a follow-up cycle. I don't think that follow-up cycle is useful to anyone.

return span
}
if let TaggedQueryKey::def_span(..) = self {
if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self {

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.

hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.

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.

Hm, I'm not sure how to do this. I found rustc_middle_query::inner::try_get_cached, so I thought I could do something like try_get_cached(TaggedQueryKey::def_span(key)).is_some(). But each query might have a different input type, and I don't know how to get from that other type back to a DefId. I don't see how to do this without modifying the implementation of def_span itself.

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.

Maybe we need something like QueryKey::def_id()?

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.

oh lol that already exists

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.

ok #154389 solves this in a completely different way and I'm not sure my approach makes sense anymore, so I'm just going to drop the last commit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It doesn't fix any query cycles though, just improves the reporting.

@rust-bors

This comment has been minimized.

jyn514 added 3 commits May 1, 2026 06:56
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
@jyn514
jyn514force-pushed the jyn/query-cycles branch from 55ee14a to 5cfaeebCompareMay 1, 2026 06:58
@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.

@jyn514

Copy link
Copy Markdown
MemberAuthor

r? @Zoxc

@rustbotrustbot assigned Zoxc and unassigned ZalatharMay 1, 2026
@Zoxc

Zoxc commented May 2, 2026

Copy link
Copy Markdown
Contributor

It kind of seems like this could be an upstream feature of stacker. cc @nagisa

For 64-bit platforms, we could just skip stacker as we just have fixed size thread stacks again.

}
TIMES_GROWN.set(times + 1);
let out = stacker::grow(STACK_PER_RECURSION, f);
TIMES_GROWN.set(times);

@programmerjakeprogrammerjakeJul 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't this be using a drop-guard to update the value properly when unwinding?

View changes since the review

@rust-bors

rust-borsBot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #160535) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

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)A-tidyArea: The tidy toolS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)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.

9 participants

@jyn514@rustbot@rust-log-analyzer@Zoxc@programmerjake@bjorn3@petrochenkov@Zalathar@JohnTitor
, '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('^' + ".*" + ' Improved handling for cycles within the query system itself by jyn514 · Pull Request #154387 · rust-lang/rust · GitHub
Skip to content

Improved handling for cycles within the query system itself - #154387

Open
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles
Open

Improved handling for cycles within the query system itself#154387
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles

Conversation

@jyn514

@jyn514jyn514 commented Mar 25, 2026

Copy link
Copy Markdown
Member

View all comments

This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:

structDriver;implCallbacksforDriver{fnconfig(&mutself,config:&mut interface::Config){
config.override_queries = Some(|_sess, providers| {
providers.queries.codegen_fn_attrs = |tcx, def_id| {let _ = tcx.hir_crate_items(());(rustc_interface::DEFAULT_QUERY_PROVIDERS.queries.codegen_fn_attrs)(tcx, def_id)};});}}fnmain() -> ExitCode{
rustc_driver::install_ice_hook("https://github.com/ferrocene/ferrocene/issues/new", |_| ());let handler = EarlyDiagCtxt::new(ErrorOutputType::default());
rustc_driver::init_rustc_env_logger(&handler);
rustc_driver::catch_with_exit_code(move || {let args:Vec<String> = std::env::args().collect();
rustc_driver::run_compiler(&args,&mutDriver)})}

Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from tests/ui/delegation/bad-resolve):

#![feature(fn_delegation)]#![allow(incomplete_features)]traitTrait{typeType;fnbar(){}}structF;implTraitforF{typeType = i32;}structS(F);implTraitforS{
reuse <FasTrait>::bar;}fnmain(){}

I'll step through how this program behaves on each commit in this PR.


  1. Main branch: Hangs indefinitely with no output.

  2. After first commit (adding safeguards to ensure_sufficient_stack):
    a. First, it prints a stacktrace that cuts off early
    b. Then it hangs forever.

  3. After calling abort if ensure_sufficient_stack fails:
    a. First, it prints a ~250 frame stacktrace,
    including both the first and last hundred frames.
    b. Then it exits.

  4. After adding debug logging, shows the stack trace from above, but first:
    a. Prints a trace of the query execution
    b. Shows the stacktrace from above.

  5. After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:

error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^

Here's an extract of that query trace:

Details
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_query_impl::execution::try_execute_query query="def_span"
...

I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within def_span.
In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!

I'm not sure if the bug is in the implementation of lower_delayed_owner, in the query system, or merely in the fact that lower_delay_owner is a prerequisite of hir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.

In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to lower_delayed_owner, not the query system itself.

cc @petrochenkov@aerooneqq@Zalathar

@rustbot

Copy link
Copy Markdown
Collaborator

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @JohnTitor

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

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

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

@jyn514

Copy link
Copy Markdown
MemberAuthor

hm. maybe r? @Zalathar ?

@rustbotrustbot assigned Zalathar and unassigned JohnTitorMar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion.

Comment threadcompiler/rustc_data_structures/src/stack.rs Outdated
Comment threadcompiler/rustc_data_structures/src/stack.rs
@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jyn514 You could try your test failures with #154389. We have some failing tests on main which that detects and the cause might be similar.

@jyn514

Copy link
Copy Markdown
MemberAuthor

I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me.

@jyn514

Copy link
Copy Markdown
MemberAuthor

Here's a trace of the queries that caused the cycle for /query-cycle-issue-124901.rs:

 rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_crate"
rustc_query_impl::execution::try_execute_query query="early_lint_checks"
rustc_query_impl::execution::try_execute_query query="resolver_for_lowering_raw"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating resolver_for_lowering_raw!
rustc_middle::queries::default_span self=resolver_for_lowering_raw(())
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:3 ~ query_cycle_issue_124901[dbc8]::Default))
rustc_middle::queries::default_span self=hir_crate(())
rustc_middle::queries::default_span self=early_lint_checks(())

Previously, default_span(local_def_id_to_hir_id) would call into def_span(def_id), which would call back into local_def_id_to_hir_id, causing a follow-up cycle. I don't think that follow-up cycle is useful to anyone.

return span
}
if let TaggedQueryKey::def_span(..) = self {
if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self {

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.

hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.

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.

Hm, I'm not sure how to do this. I found rustc_middle_query::inner::try_get_cached, so I thought I could do something like try_get_cached(TaggedQueryKey::def_span(key)).is_some(). But each query might have a different input type, and I don't know how to get from that other type back to a DefId. I don't see how to do this without modifying the implementation of def_span itself.

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.

Maybe we need something like QueryKey::def_id()?

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.

oh lol that already exists

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.

ok #154389 solves this in a completely different way and I'm not sure my approach makes sense anymore, so I'm just going to drop the last commit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It doesn't fix any query cycles though, just improves the reporting.

@rust-bors

This comment has been minimized.

jyn514 added 3 commits May 1, 2026 06:56
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
@jyn514
jyn514force-pushed the jyn/query-cycles branch from 55ee14a to 5cfaeebCompareMay 1, 2026 06:58
@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.

@jyn514

Copy link
Copy Markdown
MemberAuthor

r? @Zoxc

@rustbotrustbot assigned Zoxc and unassigned ZalatharMay 1, 2026
@Zoxc

Zoxc commented May 2, 2026

Copy link
Copy Markdown
Contributor

It kind of seems like this could be an upstream feature of stacker. cc @nagisa

For 64-bit platforms, we could just skip stacker as we just have fixed size thread stacks again.

}
TIMES_GROWN.set(times + 1);
let out = stacker::grow(STACK_PER_RECURSION, f);
TIMES_GROWN.set(times);

@programmerjakeprogrammerjakeJul 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't this be using a drop-guard to update the value properly when unwinding?

View changes since the review

@rust-bors

rust-borsBot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #160535) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

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)A-tidyArea: The tidy toolS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)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.

9 participants

@jyn514@rustbot@rust-log-analyzer@Zoxc@programmerjake@bjorn3@petrochenkov@Zalathar@JohnTitor
, '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" + ' Improved handling for cycles within the query system itself by jyn514 · Pull Request #154387 · rust-lang/rust · GitHub
Skip to content

Improved handling for cycles within the query system itself - #154387

Open
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles
Open

Improved handling for cycles within the query system itself#154387
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles

Conversation

@jyn514

@jyn514jyn514 commented Mar 25, 2026

Copy link
Copy Markdown
Member

View all comments

This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:

structDriver;implCallbacksforDriver{fnconfig(&mutself,config:&mut interface::Config){
config.override_queries = Some(|_sess, providers| {
providers.queries.codegen_fn_attrs = |tcx, def_id| {let _ = tcx.hir_crate_items(());(rustc_interface::DEFAULT_QUERY_PROVIDERS.queries.codegen_fn_attrs)(tcx, def_id)};});}}fnmain() -> ExitCode{
rustc_driver::install_ice_hook("https://github.com/ferrocene/ferrocene/issues/new", |_| ());let handler = EarlyDiagCtxt::new(ErrorOutputType::default());
rustc_driver::init_rustc_env_logger(&handler);
rustc_driver::catch_with_exit_code(move || {let args:Vec<String> = std::env::args().collect();
rustc_driver::run_compiler(&args,&mutDriver)})}

Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from tests/ui/delegation/bad-resolve):

#![feature(fn_delegation)]#![allow(incomplete_features)]traitTrait{typeType;fnbar(){}}structF;implTraitforF{typeType = i32;}structS(F);implTraitforS{
reuse <FasTrait>::bar;}fnmain(){}

I'll step through how this program behaves on each commit in this PR.


  1. Main branch: Hangs indefinitely with no output.

  2. After first commit (adding safeguards to ensure_sufficient_stack):
    a. First, it prints a stacktrace that cuts off early
    b. Then it hangs forever.

  3. After calling abort if ensure_sufficient_stack fails:
    a. First, it prints a ~250 frame stacktrace,
    including both the first and last hundred frames.
    b. Then it exits.

  4. After adding debug logging, shows the stack trace from above, but first:
    a. Prints a trace of the query execution
    b. Shows the stacktrace from above.

  5. After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:

error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^

Here's an extract of that query trace:

Details
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_query_impl::execution::try_execute_query query="def_span"
...

I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within def_span.
In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!

I'm not sure if the bug is in the implementation of lower_delayed_owner, in the query system, or merely in the fact that lower_delay_owner is a prerequisite of hir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.

In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to lower_delayed_owner, not the query system itself.

cc @petrochenkov@aerooneqq@Zalathar

@rustbot

Copy link
Copy Markdown
Collaborator

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @JohnTitor

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

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

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

@jyn514

Copy link
Copy Markdown
MemberAuthor

hm. maybe r? @Zalathar ?

@rustbotrustbot assigned Zalathar and unassigned JohnTitorMar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion.

Comment threadcompiler/rustc_data_structures/src/stack.rs Outdated
Comment threadcompiler/rustc_data_structures/src/stack.rs
@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jyn514 You could try your test failures with #154389. We have some failing tests on main which that detects and the cause might be similar.

@jyn514

Copy link
Copy Markdown
MemberAuthor

I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me.

@jyn514

Copy link
Copy Markdown
MemberAuthor

Here's a trace of the queries that caused the cycle for /query-cycle-issue-124901.rs:

 rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_crate"
rustc_query_impl::execution::try_execute_query query="early_lint_checks"
rustc_query_impl::execution::try_execute_query query="resolver_for_lowering_raw"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating resolver_for_lowering_raw!
rustc_middle::queries::default_span self=resolver_for_lowering_raw(())
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:3 ~ query_cycle_issue_124901[dbc8]::Default))
rustc_middle::queries::default_span self=hir_crate(())
rustc_middle::queries::default_span self=early_lint_checks(())

Previously, default_span(local_def_id_to_hir_id) would call into def_span(def_id), which would call back into local_def_id_to_hir_id, causing a follow-up cycle. I don't think that follow-up cycle is useful to anyone.

return span
}
if let TaggedQueryKey::def_span(..) = self {
if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self {

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.

hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.

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.

Hm, I'm not sure how to do this. I found rustc_middle_query::inner::try_get_cached, so I thought I could do something like try_get_cached(TaggedQueryKey::def_span(key)).is_some(). But each query might have a different input type, and I don't know how to get from that other type back to a DefId. I don't see how to do this without modifying the implementation of def_span itself.

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.

Maybe we need something like QueryKey::def_id()?

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.

oh lol that already exists

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.

ok #154389 solves this in a completely different way and I'm not sure my approach makes sense anymore, so I'm just going to drop the last commit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It doesn't fix any query cycles though, just improves the reporting.

@rust-bors

This comment has been minimized.

jyn514 added 3 commits May 1, 2026 06:56
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
@jyn514
jyn514force-pushed the jyn/query-cycles branch from 55ee14a to 5cfaeebCompareMay 1, 2026 06:58
@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.

@jyn514

Copy link
Copy Markdown
MemberAuthor

r? @Zoxc

@rustbotrustbot assigned Zoxc and unassigned ZalatharMay 1, 2026
@Zoxc

Zoxc commented May 2, 2026

Copy link
Copy Markdown
Contributor

It kind of seems like this could be an upstream feature of stacker. cc @nagisa

For 64-bit platforms, we could just skip stacker as we just have fixed size thread stacks again.

}
TIMES_GROWN.set(times + 1);
let out = stacker::grow(STACK_PER_RECURSION, f);
TIMES_GROWN.set(times);

@programmerjakeprogrammerjakeJul 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't this be using a drop-guard to update the value properly when unwinding?

View changes since the review

@rust-bors

rust-borsBot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #160535) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

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)A-tidyArea: The tidy toolS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)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.

9 participants

@jyn514@rustbot@rust-log-analyzer@Zoxc@programmerjake@bjorn3@petrochenkov@Zalathar@JohnTitor
, '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('^' + ".*" + ' Improved handling for cycles within the query system itself by jyn514 · Pull Request #154387 · rust-lang/rust · GitHub
Skip to content

Improved handling for cycles within the query system itself - #154387

Open
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles
Open

Improved handling for cycles within the query system itself#154387
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles

Conversation

@jyn514

@jyn514jyn514 commented Mar 25, 2026

Copy link
Copy Markdown
Member

View all comments

This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:

structDriver;implCallbacksforDriver{fnconfig(&mutself,config:&mut interface::Config){
config.override_queries = Some(|_sess, providers| {
providers.queries.codegen_fn_attrs = |tcx, def_id| {let _ = tcx.hir_crate_items(());(rustc_interface::DEFAULT_QUERY_PROVIDERS.queries.codegen_fn_attrs)(tcx, def_id)};});}}fnmain() -> ExitCode{
rustc_driver::install_ice_hook("https://github.com/ferrocene/ferrocene/issues/new", |_| ());let handler = EarlyDiagCtxt::new(ErrorOutputType::default());
rustc_driver::init_rustc_env_logger(&handler);
rustc_driver::catch_with_exit_code(move || {let args:Vec<String> = std::env::args().collect();
rustc_driver::run_compiler(&args,&mutDriver)})}

Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from tests/ui/delegation/bad-resolve):

#![feature(fn_delegation)]#![allow(incomplete_features)]traitTrait{typeType;fnbar(){}}structF;implTraitforF{typeType = i32;}structS(F);implTraitforS{
reuse <FasTrait>::bar;}fnmain(){}

I'll step through how this program behaves on each commit in this PR.


  1. Main branch: Hangs indefinitely with no output.

  2. After first commit (adding safeguards to ensure_sufficient_stack):
    a. First, it prints a stacktrace that cuts off early
    b. Then it hangs forever.

  3. After calling abort if ensure_sufficient_stack fails:
    a. First, it prints a ~250 frame stacktrace,
    including both the first and last hundred frames.
    b. Then it exits.

  4. After adding debug logging, shows the stack trace from above, but first:
    a. Prints a trace of the query execution
    b. Shows the stacktrace from above.

  5. After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:

error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^

Here's an extract of that query trace:

Details
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_query_impl::execution::try_execute_query query="def_span"
...

I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within def_span.
In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!

I'm not sure if the bug is in the implementation of lower_delayed_owner, in the query system, or merely in the fact that lower_delay_owner is a prerequisite of hir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.

In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to lower_delayed_owner, not the query system itself.

cc @petrochenkov@aerooneqq@Zalathar

@rustbot

Copy link
Copy Markdown
Collaborator

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @JohnTitor

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

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

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

@jyn514

Copy link
Copy Markdown
MemberAuthor

hm. maybe r? @Zalathar ?

@rustbotrustbot assigned Zalathar and unassigned JohnTitorMar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion.

Comment threadcompiler/rustc_data_structures/src/stack.rs Outdated
Comment threadcompiler/rustc_data_structures/src/stack.rs
@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jyn514 You could try your test failures with #154389. We have some failing tests on main which that detects and the cause might be similar.

@jyn514

Copy link
Copy Markdown
MemberAuthor

I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me.

@jyn514

Copy link
Copy Markdown
MemberAuthor

Here's a trace of the queries that caused the cycle for /query-cycle-issue-124901.rs:

 rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_crate"
rustc_query_impl::execution::try_execute_query query="early_lint_checks"
rustc_query_impl::execution::try_execute_query query="resolver_for_lowering_raw"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating resolver_for_lowering_raw!
rustc_middle::queries::default_span self=resolver_for_lowering_raw(())
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:3 ~ query_cycle_issue_124901[dbc8]::Default))
rustc_middle::queries::default_span self=hir_crate(())
rustc_middle::queries::default_span self=early_lint_checks(())

Previously, default_span(local_def_id_to_hir_id) would call into def_span(def_id), which would call back into local_def_id_to_hir_id, causing a follow-up cycle. I don't think that follow-up cycle is useful to anyone.

return span
}
if let TaggedQueryKey::def_span(..) = self {
if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self {

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.

hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.

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.

Hm, I'm not sure how to do this. I found rustc_middle_query::inner::try_get_cached, so I thought I could do something like try_get_cached(TaggedQueryKey::def_span(key)).is_some(). But each query might have a different input type, and I don't know how to get from that other type back to a DefId. I don't see how to do this without modifying the implementation of def_span itself.

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.

Maybe we need something like QueryKey::def_id()?

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.

oh lol that already exists

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.

ok #154389 solves this in a completely different way and I'm not sure my approach makes sense anymore, so I'm just going to drop the last commit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It doesn't fix any query cycles though, just improves the reporting.

@rust-bors

This comment has been minimized.

jyn514 added 3 commits May 1, 2026 06:56
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
@jyn514
jyn514force-pushed the jyn/query-cycles branch from 55ee14a to 5cfaeebCompareMay 1, 2026 06:58
@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.

@jyn514

Copy link
Copy Markdown
MemberAuthor

r? @Zoxc

@rustbotrustbot assigned Zoxc and unassigned ZalatharMay 1, 2026
@Zoxc

Zoxc commented May 2, 2026

Copy link
Copy Markdown
Contributor

It kind of seems like this could be an upstream feature of stacker. cc @nagisa

For 64-bit platforms, we could just skip stacker as we just have fixed size thread stacks again.

}
TIMES_GROWN.set(times + 1);
let out = stacker::grow(STACK_PER_RECURSION, f);
TIMES_GROWN.set(times);

@programmerjakeprogrammerjakeJul 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't this be using a drop-guard to update the value properly when unwinding?

View changes since the review

@rust-bors

rust-borsBot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #160535) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

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)A-tidyArea: The tidy toolS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)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.

9 participants

@jyn514@rustbot@rust-log-analyzer@Zoxc@programmerjake@bjorn3@petrochenkov@Zalathar@JohnTitor
, '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('^' + ".*" + ' Improved handling for cycles within the query system itself by jyn514 · Pull Request #154387 · rust-lang/rust · GitHub
Skip to content

Improved handling for cycles within the query system itself - #154387

Open
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles
Open

Improved handling for cycles within the query system itself#154387
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles

Conversation

@jyn514

@jyn514jyn514 commented Mar 25, 2026

Copy link
Copy Markdown
Member

View all comments

This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:

structDriver;implCallbacksforDriver{fnconfig(&mutself,config:&mut interface::Config){
config.override_queries = Some(|_sess, providers| {
providers.queries.codegen_fn_attrs = |tcx, def_id| {let _ = tcx.hir_crate_items(());(rustc_interface::DEFAULT_QUERY_PROVIDERS.queries.codegen_fn_attrs)(tcx, def_id)};});}}fnmain() -> ExitCode{
rustc_driver::install_ice_hook("https://github.com/ferrocene/ferrocene/issues/new", |_| ());let handler = EarlyDiagCtxt::new(ErrorOutputType::default());
rustc_driver::init_rustc_env_logger(&handler);
rustc_driver::catch_with_exit_code(move || {let args:Vec<String> = std::env::args().collect();
rustc_driver::run_compiler(&args,&mutDriver)})}

Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from tests/ui/delegation/bad-resolve):

#![feature(fn_delegation)]#![allow(incomplete_features)]traitTrait{typeType;fnbar(){}}structF;implTraitforF{typeType = i32;}structS(F);implTraitforS{
reuse <FasTrait>::bar;}fnmain(){}

I'll step through how this program behaves on each commit in this PR.


  1. Main branch: Hangs indefinitely with no output.

  2. After first commit (adding safeguards to ensure_sufficient_stack):
    a. First, it prints a stacktrace that cuts off early
    b. Then it hangs forever.

  3. After calling abort if ensure_sufficient_stack fails:
    a. First, it prints a ~250 frame stacktrace,
    including both the first and last hundred frames.
    b. Then it exits.

  4. After adding debug logging, shows the stack trace from above, but first:
    a. Prints a trace of the query execution
    b. Shows the stacktrace from above.

  5. After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:

error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^

Here's an extract of that query trace:

Details
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_query_impl::execution::try_execute_query query="def_span"
...

I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within def_span.
In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!

I'm not sure if the bug is in the implementation of lower_delayed_owner, in the query system, or merely in the fact that lower_delay_owner is a prerequisite of hir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.

In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to lower_delayed_owner, not the query system itself.

cc @petrochenkov@aerooneqq@Zalathar

@rustbot

Copy link
Copy Markdown
Collaborator

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @JohnTitor

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

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

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

@jyn514

Copy link
Copy Markdown
MemberAuthor

hm. maybe r? @Zalathar ?

@rustbotrustbot assigned Zalathar and unassigned JohnTitorMar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion.

Comment threadcompiler/rustc_data_structures/src/stack.rs Outdated
Comment threadcompiler/rustc_data_structures/src/stack.rs
@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jyn514 You could try your test failures with #154389. We have some failing tests on main which that detects and the cause might be similar.

@jyn514

Copy link
Copy Markdown
MemberAuthor

I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me.

@jyn514

Copy link
Copy Markdown
MemberAuthor

Here's a trace of the queries that caused the cycle for /query-cycle-issue-124901.rs:

 rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_crate"
rustc_query_impl::execution::try_execute_query query="early_lint_checks"
rustc_query_impl::execution::try_execute_query query="resolver_for_lowering_raw"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating resolver_for_lowering_raw!
rustc_middle::queries::default_span self=resolver_for_lowering_raw(())
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:3 ~ query_cycle_issue_124901[dbc8]::Default))
rustc_middle::queries::default_span self=hir_crate(())
rustc_middle::queries::default_span self=early_lint_checks(())

Previously, default_span(local_def_id_to_hir_id) would call into def_span(def_id), which would call back into local_def_id_to_hir_id, causing a follow-up cycle. I don't think that follow-up cycle is useful to anyone.

return span
}
if let TaggedQueryKey::def_span(..) = self {
if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self {

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.

hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.

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.

Hm, I'm not sure how to do this. I found rustc_middle_query::inner::try_get_cached, so I thought I could do something like try_get_cached(TaggedQueryKey::def_span(key)).is_some(). But each query might have a different input type, and I don't know how to get from that other type back to a DefId. I don't see how to do this without modifying the implementation of def_span itself.

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.

Maybe we need something like QueryKey::def_id()?

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.

oh lol that already exists

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.

ok #154389 solves this in a completely different way and I'm not sure my approach makes sense anymore, so I'm just going to drop the last commit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It doesn't fix any query cycles though, just improves the reporting.

@rust-bors

This comment has been minimized.

jyn514 added 3 commits May 1, 2026 06:56
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
@jyn514
jyn514force-pushed the jyn/query-cycles branch from 55ee14a to 5cfaeebCompareMay 1, 2026 06:58
@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.

@jyn514

Copy link
Copy Markdown
MemberAuthor

r? @Zoxc

@rustbotrustbot assigned Zoxc and unassigned ZalatharMay 1, 2026
@Zoxc

Zoxc commented May 2, 2026

Copy link
Copy Markdown
Contributor

It kind of seems like this could be an upstream feature of stacker. cc @nagisa

For 64-bit platforms, we could just skip stacker as we just have fixed size thread stacks again.

}
TIMES_GROWN.set(times + 1);
let out = stacker::grow(STACK_PER_RECURSION, f);
TIMES_GROWN.set(times);

@programmerjakeprogrammerjakeJul 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't this be using a drop-guard to update the value properly when unwinding?

View changes since the review

@rust-bors

rust-borsBot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #160535) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

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)A-tidyArea: The tidy toolS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)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.

9 participants

@jyn514@rustbot@rust-log-analyzer@Zoxc@programmerjake@bjorn3@petrochenkov@Zalathar@JohnTitor
, '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); } })(); })(); Improved handling for cycles within the query system itself by jyn514 · Pull Request #154387 · rust-lang/rust · GitHub
Skip to content

Improved handling for cycles within the query system itself - #154387

Open
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles
Open

Improved handling for cycles within the query system itself#154387
jyn514 wants to merge 3 commits into
rust-lang:mainfrom
ferrocene:jyn/query-cycles

Conversation

@jyn514

@jyn514jyn514 commented Mar 25, 2026

Copy link
Copy Markdown
Member

View all comments

This PR is somewhat complicated and I don't expect it to merge as-is. Let me start with a motivating example. The following rustc-driver worked fine a week ago:

structDriver;implCallbacksforDriver{fnconfig(&mutself,config:&mut interface::Config){
config.override_queries = Some(|_sess, providers| {
providers.queries.codegen_fn_attrs = |tcx, def_id| {let _ = tcx.hir_crate_items(());(rustc_interface::DEFAULT_QUERY_PROVIDERS.queries.codegen_fn_attrs)(tcx, def_id)};});}}fnmain() -> ExitCode{
rustc_driver::install_ice_hook("https://github.com/ferrocene/ferrocene/issues/new", |_| ());let handler = EarlyDiagCtxt::new(ErrorOutputType::default());
rustc_driver::init_rustc_env_logger(&handler);
rustc_driver::catch_with_exit_code(move || {let args:Vec<String> = std::env::args().collect();
rustc_driver::run_compiler(&args,&mutDriver)})}

Since #153489 merged, it hangs indefinitely trying to compile the following program (reduced from tests/ui/delegation/bad-resolve):

#![feature(fn_delegation)]#![allow(incomplete_features)]traitTrait{typeType;fnbar(){}}structF;implTraitforF{typeType = i32;}structS(F);implTraitforS{
reuse <FasTrait>::bar;}fnmain(){}

I'll step through how this program behaves on each commit in this PR.


  1. Main branch: Hangs indefinitely with no output.

  2. After first commit (adding safeguards to ensure_sufficient_stack):
    a. First, it prints a stacktrace that cuts off early
    b. Then it hangs forever.

  3. After calling abort if ensure_sufficient_stack fails:
    a. First, it prints a ~250 frame stacktrace,
    including both the first and last hundred frames.
    b. Then it exits.

  4. After adding debug logging, shows the stack trace from above, but first:
    a. Prints a trace of the query execution
    b. Shows the stacktrace from above.

  5. After the bug fix: as above, but instead of the 5 million frame backtrace, prints a "more normal" query cycle:

error[E0391]: cycle detected when looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`
|
= note: ...which requires getting HIR ID of `<impl at bad-resolve.rs:15:1: 15:17>::bar`...
= note: ...which again requires looking up span for `<impl at bad-resolve.rs:15:1: 15:17>::bar`, completing the cycle
note: cycle used when computing codegen attributes of `Trait::bar`
--> bad-resolve.rs:6:5
|
6 | fn bar() {}
| ^^^^^^^^

Here's an extract of that query trace:

Details
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_query_impl::execution::try_execute_query query="def_span"
...

I feel somewhat strongly that there is a bug here; it should not be possible to get query cycles within def_span.
In particular, note that the first two cycles are ignored altogether in order to report the
third cycle; that seems quite bad!

I'm not sure if the bug is in the implementation of lower_delayed_owner, in the query system, or merely in the fact that lower_delay_owner is a prerequisite of hir_items; I'm opening this PR to get more feedback on that. However, I think the commits here stand on their own.

In #153979 (comment) I mistakenly attributed this to recent refactors in the query system; I no longer think that's true, I think the infinite loop is a latent bug that's been around for years, and the new query cycle is related to lower_delayed_owner, not the query system itself.

cc @petrochenkov@aerooneqq@Zalathar

@rustbot

Copy link
Copy Markdown
Collaborator

These commits modify the Cargo.lock file. Unintentional changes to Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

@rustbotrustbot added A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

r? @JohnTitor

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

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

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

@jyn514

Copy link
Copy Markdown
MemberAuthor

hm. maybe r? @Zalathar ?

@rustbotrustbot assigned Zalathar and unassigned JohnTitorMar 25, 2026
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Not sure about the query related changes here, but it makes sense to have proper stack limit so we don't OOM with infinite recursion.

Comment threadcompiler/rustc_data_structures/src/stack.rs Outdated
Comment threadcompiler/rustc_data_structures/src/stack.rs
@Zoxc

Zoxc commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

@jyn514 You could try your test failures with #154389. We have some failing tests on main which that detects and the cause might be similar.

@jyn514

Copy link
Copy Markdown
MemberAuthor

I think the tests were wrong, not the code. I've pushed a commit updating them; the new cycle errors look much more informative to me.

@jyn514

Copy link
Copy Markdown
MemberAuthor

Here's a trace of the queries that caused the cycle for /query-cycle-issue-124901.rs:

 rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="hir_crate"
rustc_query_impl::execution::try_execute_query query="early_lint_checks"
rustc_query_impl::execution::try_execute_query query="resolver_for_lowering_raw"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating resolver_for_lowering_raw!
rustc_middle::queries::default_span self=resolver_for_lowering_raw(())
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:3 ~ query_cycle_issue_124901[dbc8]::Default))
rustc_middle::queries::default_span self=hir_crate(())
rustc_middle::queries::default_span self=early_lint_checks(())

Previously, default_span(local_def_id_to_hir_id) would call into def_span(def_id), which would call back into local_def_id_to_hir_id, causing a follow-up cycle. I don't think that follow-up cycle is useful to anyone.

return span
}
if let TaggedQueryKey::def_span(..) = self {
if let TaggedQueryKey::def_span(..) | TaggedQueryKey::local_def_id_to_hir_id(..) = self {

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.

hm, I think this fix is incomplete. hir_span can also call queries (I've verified it calls at least hir_owner_parent_q and opt_hir_owner_nodes). I wonder if the query system should have some special "fallback cycle handler" where def_span can return to choose DUMMY_SP if there's an existing query that's executing. Then we don't have to hard-code all its dependencies in default_span.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we could check if HIR lowering is done for the DefId by checking if relevant queries have executed and only then try to get the span.

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.

Hm, I'm not sure how to do this. I found rustc_middle_query::inner::try_get_cached, so I thought I could do something like try_get_cached(TaggedQueryKey::def_span(key)).is_some(). But each query might have a different input type, and I don't know how to get from that other type back to a DefId. I don't see how to do this without modifying the implementation of def_span itself.

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.

Maybe we need something like QueryKey::def_id()?

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.

oh lol that already exists

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.

ok #154389 solves this in a completely different way and I'm not sure my approach makes sense anymore, so I'm just going to drop the last commit.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It doesn't fix any query cycles though, just improves the reporting.

@rust-bors

This comment has been minimized.

jyn514 added 3 commits May 1, 2026 06:56
Something has definitely gone wrong at this point. This is over 5
million stack frames, certainly more than we'd ever hit in successful
code. It's actually too many stack frames for the default panic handler,
or GDB, or LLDB, to print. Instead add a manual stack overflow handler
which only prints the first and last hundred stack frames.
We can't even have a normal `println!("{backtrace}")` because
symbolizing that many frames too long. Instead, resolve the frame
lazily.
This shows the following stack trace:
```
still not enough stack after 1000 expansions of dynamic stack; infinite recursion?
first hundred frames:
0: trace
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/libunwind.rs:117:9
1: trace_unsynchronized<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:66:14
2: trace<backtrace::capture::{impl#4}::create::{closure_env#0}>
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/backtrace/mod.rs:53:14
3: create
at /Users/jyn/.local/lib/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/capture.rs:294:9
4: report_too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:68:21
5: call_once<fn() -> !, ()>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
6: ___rust_try
at <unknown>
7: catch_unwind<!, fn() -> !>
at /Users/jyn/work/rust-upstream/library/std/src/panicking.rs:544:19
8: catch_unwind<fn() -> !, !>
at /Users/jyn/work/rust-upstream/library/std/src/panic.rs:359:14
9: too_much_stack
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:54:18
10: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:44:13
11: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
12: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
13: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
14: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
15: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
16: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
17: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
18: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
19: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
20: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
21: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
22: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
23: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
24: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
25: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
26: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
27: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
28: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
29: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
30: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
31: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
32: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
33: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
34: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
35: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
36: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
37: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
38: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
39: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
40: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
41: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
42: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
43: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
44: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
45: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
46: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
47: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
48: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
49: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
50: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
51: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
52: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
53: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
54: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
55: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
56: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
57: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
58: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
59: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
60: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
61: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
62: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
63: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
64: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
65: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
66: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
67: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
68: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
69: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
70: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
71: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
72: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
73: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
74: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
75: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
76: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
77: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
78: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
79: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
80: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
81: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
82: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
83: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
84: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
85: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
86: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
87: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
88: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
89: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
90: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
91: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
92: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
93: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
94: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
95: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
96: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
97: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
98: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
99: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
100: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
101: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
102: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
103: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
104: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
105: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
106: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
107: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
108: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
109: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
110: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
111: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
112: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
113: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
114: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
115: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
116: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
117: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
118: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
119: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
120: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
121: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
122: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
123: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
124: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
125: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
126: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
127: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
128: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
129: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
130: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
131: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
132: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
133: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
134: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
135: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
136: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
137: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
138: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
139: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
140: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
141: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
142: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
143: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
144: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
145: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
146: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
147: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
148: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
149: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
150: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
151: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
152: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
153: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
154: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
155: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
156: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
157: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
158: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
...
last hundred frames:
4637037: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637038: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637039: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637040: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637041: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637042: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637043: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637044: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637045: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637046: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637047: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637048: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637049: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637050: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637051: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637052: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637053: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637054: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637055: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637056: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637057: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637058: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637059: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637060: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637061: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637062: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637063: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637064: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637065: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637066: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637067: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637068: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637069: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637070: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637071: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637072: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637073: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637074: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637075: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637076: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637077: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637078: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637079: handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637080: find_and_handle_cycle<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637081: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637082: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637083: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637084: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637085: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637086: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637087: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637088: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637089: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637090: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637091: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637092: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:460:37
4637093: handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637094: find_and_handle_cycle<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637095: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637096: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637097: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637098: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637099: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637100: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:63:13
4637101: lower_delayed_owner<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:621:21
4637102: owner
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:73:31
4637103: {closure#0}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:475:78
4637104: call_once<rustc_middle::hir::provide::{closure_env#0}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637105: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637106: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637107: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637108: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637109: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637110: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637111: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637112: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637113: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637114: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637115: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637116: execute_job_non_incr<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637117: try_execute_query<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637118: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637119: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637120: execute_query_non_incr_inner<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637121: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637122: query_get_at<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637123: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637124: local_def_id_to_hir_id<rustc_span::def_id::LocalDefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637125: {closure#5}
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/hir/mod.rs:488:57
4637126: call_once<rustc_middle::hir::provide::{closure_env#5}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637127: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637128: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637129: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637130: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637131: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637132: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637133: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637134: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637135: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637136: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637137: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637138: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637139: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637140: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637141: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637142: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637143: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637144: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637145: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637146: def_span<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637147: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:141:13
4637148: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/keys.rs:129:26
4637149: default_span
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:448:29
4637150: create_cycle_error
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/job.rs:474:37
4637151: handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:117:17
4637152: find_and_handle_cycle<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:211:6
4637153: try_execute_query<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:337:25
4637154: {closure#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637155: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637156: execute_query_non_incr_inner<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637157: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637158: rustc_middle[95cb20ab0b0ff780]::query::inner::query_get_at::<rustc_middle[95cb20ab0b0ff780]::query::caches::SingleCache<rustc_middle[95cb20ab0b0ff780]::query::erase::ErasedData<[u8; 8usize]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637159: <rustc_middle[95cb20ab0b0ff780]::query::plumbing::TyCtxtAt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637160: <rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt>::hir_crate_items
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637161: <loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0}
at /Users/jyn/work/loopy/src/main.rs:20:29
4637162: <<loopy[71142d0964a78a85]::Driver as rustc_driver_impl[28dd62d9dde0f1b4]::Callbacks>::config::{closure#0}::{closure#0} as core[d920faf4c96bc488]::ops::function::FnOnce<(rustc_middle[95cb20ab0b0ff780]::ty::context::TyCtxt, rustc_span[e4b3c3db7c294ad9]::def_id::LocalDefId)>>::call_once
at /Users/jyn/work/rust-upstream/library/core/src/ops/function.rs:250:5
4637163: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:110:29
4637164: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637165: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637166: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637167: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637168: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637169: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637170: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637171: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637172: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>, rustc_middle::query::erase::ErasedData<[u8; 8]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637173: start_query<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:61:5
4637174: execute_job_non_incr<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:17
4637175: try_execute_query<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:307:17
4637176: {closure#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:32
4637177: ensure_sufficient_stack<rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_query_impl::execution::execute_query_non_incr_inner::{closure_env#0}<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_data_structures/src/stack.rs:40:9
4637178: execute_query_non_incr_inner<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:600:5
4637179: __rust_end_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:80:30
4637180: query_get_at<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/inner.rs:45:17
4637181: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:572:46
4637182: codegen_fn_attrs<rustc_span::def_id::DefId>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/query/plumbing.rs:560:39
4637183: lower_delegation_sig<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:334:33
4637184: lower_delegation<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/delegation.rs:162:32
4637185: lower_impl_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:1296:47
4637186: lower_assoc_item<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:770:47
4637187: {closure#2}<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:57
4637188: {closure#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:46
4637189: with_hir_id_owner<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::with_lctx::{closure_env#0}<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:803:20
4637190: with_lctx<rustc_ast_lowering::ResolverDelayedAstLowering, rustc_ast_lowering::item::{impl#1}::lower_node::{closure_env#2}<rustc_ast_lowering::ResolverDelayedAstLowering>>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:84:14
4637191: lower_node<rustc_ast_lowering::ResolverDelayedAstLowering>
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/item.rs:115:26
4637192: lower_delayed_owner
at /Users/jyn/work/rust-upstream/compiler/rustc_ast_lowering/src/lib.rs:679:13
4637193: __rust_begin_short_backtrace
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/query_impl.rs:116:46
4637194: {closure#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/execution.rs:399:59
4637195: {closure#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:56:9
4637196: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:462:12
4637197: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/library/std/src/thread/local.rs:426:20
4637198: enter_context<rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:53:9
4637199: {closure#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>
at /Users/jyn/work/rust-upstream/compiler/rustc_query_impl/src/plumbing.rs:74:9
4637200: {closure#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:36
4637201: with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:75:18
4637202: with_context<rustc_query_impl::plumbing::start_query::{closure_env#0}<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::execute_job_non_incr::{closure_env#0}<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_middle::dep_graph::graph::DepNodeIndex>>>, rustc_middle::query::erase::ErasedData<[u8; 0]>>
at /Users/jyn/work/rust-upstream/compiler/rustc_middle/src/ty/context/tls.rs:86:5
4637203: start_query<rustc_middle::query::erase::ErasedData<[u8; 0]>, rustc_query_impl::execution::exec…
```
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
...
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
...
rustc_query_impl::execution::try_execute_query query="asyncness"
rustc_query_impl::execution::try_execute_query query="codegen_fn_attrs"
rustc_query_impl::execution::try_execute_query query="hir_crate_items"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating hir_crate_items!
rustc_middle::queries::default_span self=hir_crate_items(())
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="lower_delayed_owner"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating lower_delayed_owner!
rustc_middle::queries::default_span self=lower_delayed_owner(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
0ms INFO rustc_query_impl::execution hit a query cycle evaluating def_span!
rustc_middle::queries::default_span self=def_span(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
rustc_query_impl::execution::try_execute_query query="local_def_id_to_hir_id"
rustc_query_impl::execution::try_execute_query query="opt_hir_owner_nodes"
rustc_middle::queries::default_span self=local_def_id_to_hir_id(DefId(0:14 ~ bad_resolve[0a7b]::{impl#1}::bar))
rustc_query_impl::execution::try_execute_query query="def_span"
```
@jyn514
jyn514force-pushed the jyn/query-cycles branch from 55ee14a to 5cfaeebCompareMay 1, 2026 06:58
@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.

@jyn514

Copy link
Copy Markdown
MemberAuthor

r? @Zoxc

@rustbotrustbot assigned Zoxc and unassigned ZalatharMay 1, 2026
@Zoxc

Zoxc commented May 2, 2026

Copy link
Copy Markdown
Contributor

It kind of seems like this could be an upstream feature of stacker. cc @nagisa

For 64-bit platforms, we could just skip stacker as we just have fixed size thread stacks again.

}
TIMES_GROWN.set(times + 1);
let out = stacker::grow(STACK_PER_RECURSION, f);
TIMES_GROWN.set(times);

@programmerjakeprogrammerjakeJul 19, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

shouldn't this be using a drop-guard to update the value properly when unwinding?

View changes since the review

@rust-bors

rust-borsBot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☔ The latest upstream changes (presumably #160535) made this pull request unmergeable. Please resolve the merge conflicts by rebasing.

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)A-tidyArea: The tidy toolS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)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.

9 participants

@jyn514@rustbot@rust-log-analyzer@Zoxc@programmerjake@bjorn3@petrochenkov@Zalathar@JohnTitor