Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Miscompilation with incr. comp. #82920

Closed
jonas-schievink opened this issue Mar 9, 2021 · 16 comments
Closed

Miscompilation with incr. comp. #82920

jonas-schievink opened this issue Mar 9, 2021 · 16 comments
Assignees
Labels
A-incr-comp Area: Incremental compilation C-bug Category: This is a bug. I-unsound Issue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness P-high High priority T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@jonas-schievink
Copy link
Contributor

I have pushed 2 commits that reproduce an incremental compilation bug that leads to a segmentation fault or countless test failures due to out-of-bounds panics:

Steps to reproduce:

First commit, then second:

$ git checkout 958af09d656289d7fe5c01f46c159f7859dd0901
$ cargo test -p ide_completion
<a few tests fail, because the code has a legitimate bug>
$ git checkout 6802a06a824164ff3e274a6bb638c4243cdec654
$ cargo test -p ide_completion
<many more tests fail with "index out of bounds" panics>
$ cargo clean
$ cargo test -p ide_completion
<tests pass>

Second commit, then first:

$ git checkout 6802a06a824164ff3e274a6bb638c4243cdec654
$ cargo test -p ide_completion
<tests pass>
$ git checkout 958af09d656289d7fe5c01f46c159f7859dd0901
$ cargo test -p ide_completion
   Compiling hir_ty v0.0.0 (/home/jonas/dev/rust-analyzer/crates/hir_ty)
   Compiling hir v0.0.0 (/home/jonas/dev/rust-analyzer/crates/hir)
   Compiling ide_db v0.0.0 (/home/jonas/dev/rust-analyzer/crates/ide_db)
   Compiling ide_completion v0.0.0 (/home/jonas/dev/rust-analyzer/crates/ide_completion)
    Finished test [unoptimized] target(s) in 13.15s
     Running unittests (target/debug/deps/ide_completion-68e02c0059fb642f)

running 243 tests
test completions::attribute::tests::no_completion_for_incorrect_derive ... ok
test completions::attribute::tests::test_attribute_completion_inside_nested_attr ... ok
test completions::dot::tests::test_completion_works_in_consts ... FAILED
test completions::dot::tests::test_tuple_field_completion ... FAILED
test completions::attribute::tests::test_attribute_completion ... ok
test completions::attribute::tests::test_inner_attribute_completion ... ok
test completions::dot::tests::test_no_struct_field_completion_for_method_call ... FAILED
test completions::attribute::tests::derive_with_input_completion ... ok
test completions::dot::tests::test_struct_field_and_method_completion ... FAILED
test completions::dot::tests::test_trait_method_completion ... FAILED
test completions::dot::tests::test_trait_method_completion_deduplicated ... FAILED
test completions::dot::tests::test_struct_field_completion_self ... FAILED
test completions::dot::tests::test_no_non_self_method ... FAILED
test completions::dot::tests::completes_trait_method_from_other_module ... FAILED
test completions::dot::tests::test_method_completion_issue_3547 ... FAILED
test completions::dot::tests::test_method_completion_only_fitting_impls ... FAILED
test completions::dot::tests::test_visibility_filtering ... FAILED
error: test failed, to rerun pass '-p ide_completion --lib'

Caused by:
  process didn't exit successfully: `/home/jonas/dev/rust-analyzer/target/debug/deps/ide_completion-68e02c0059fb642f` (signal: 11, SIGSEGV: invalid memory reference)
$ cargo clean
$ cargo test -p ide_completion
<a few tests fail, because the code has a legitimate bug>

This reproduces both on stable 1.50.0, as well as rustc 1.52.0-nightly (234781a 2021-03-07).

Apologies in advance for the nightmare that reducing this bug will probably be.

@jonas-schievink jonas-schievink added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. I-unsound Issue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness A-incr-comp Area: Incremental compilation C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example labels Mar 9, 2021
@rustbot rustbot added the I-prioritize Issue: Indicates that prioritization has been requested for this issue. label Mar 9, 2021
@matthiaskrgr
Copy link
Member

Does -Z incremental-verify-ich=yes show anything interesting if you add it to both compiles?

@jonas-schievink
Copy link
Contributor Author

Yes:

thread 'rustc' panicked at 'found unstable fingerprints for super_predicates_that_define_assoc_type(3b141dfec2cd95a0-b29c689b3e8b2251)', /rustc/234781afe33d3f339b002f85f948046d8476cfc9/compiler/rustc_query_system/src/query/plumbing.rs:586:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.52.0-nightly (234781afe 2021-03-07) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z incremental-verify-ich=yes -C embed-bitcode=no -C debuginfo=0 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [super_predicates_that_define_assoc_type] computing the super traits of `db::HirDatabase`
#1 [super_predicates_of] computing the super predicates of `db::HirDatabase`
end of query stack

@wesleywiser wesleywiser added the E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc label Mar 9, 2021
@apiraino
Copy link
Contributor

Assigning P-high as discussed as part of the Prioritization Working Group procedure and removing I-prioritize.

@rustbot label -I-prioritize +P-high

@rustbot rustbot added P-high High priority and removed I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels Mar 10, 2021
@pnkfelix
Copy link
Member

(Oh, I told wesley to tag with needs-bisection yesterday, but then I realize now that we don't know that this is a regression. Its only been reported as being reproducible in a recent stable; we do not yet know about older stables. Will investigate.)

@Aaron1011
Copy link
Member

I modified my local rustc to print out the current value when the fingerprint changes:

   Compiling rust-analyzer v0.0.0 (/home/aaron/repos/rust-analyzer/crates/rust-analyzer)
    Checking hir_ty v0.0.0 (/home/aaron/repos/rust-analyzer/crates/hir_ty)
thread 'rustc' panicked at 'found unstable fingerprints for super_predicates_that_define_assoc_type(aa8207daf165e6fe-958914c918c87b61): GenericPredicates { parent: None, predicates: [(Binder(TraitPredicate(<Self as base_db::Upcast<(dyn hir_def::db::DefDatabase + ReStatic)>>)), crates/hir_ty/src/db.rs:21:38: 21:61 (#0)), (Binder(TraitPredicate(<Self as base_db::salsa::plumbing::HasQueryGroup<db::HirDatabaseStorage>>)), crates/hir_ty/src/db.rs:20:1: 20:42 (#1095)), (Binder(TraitPredicate(<Self as base_db::salsa::Database>)), crates/hir_ty/src/db.rs:20:1: 20:42 (#1095)), (Binder(TraitPredicate(<Self as hir_def::db::DefDatabase>)), crates/hir_ty/src/db.rs:21:24: 21:35 (#0))] }', /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:586:5
stack backtrace:
   0: rust_begin_unwind
             at /home/aaron/repos/rust/library/std/src/panicking.rs:493:5
   1: std::panicking::begin_panic_fmt
             at /home/aaron/repos/rust/library/std/src/panicking.rs:435:5
   2: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:586:5
   3: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory::<rustc_query_impl::plumbing::QueryCtxt, (rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:554:9
   4: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:479:21
   5: <core::option::Option<(rustc_query_system::dep_graph::serialized::SerializedDepNodeIndex, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::map::<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}::{closure#0}>
             at /home/aaron/repos/rust/library/core/src/option.rs:487:29
   6: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:477:13
   7: stacker::maybe_grow::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
   8: rustc_data_structures::stack::ensure_sufficient_stack::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
   9: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
  10: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
  11: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
  12: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
  13: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
  14: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
  15: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
  16: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
  17: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
  18: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
  19: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
  20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:475:22
  21: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<(rustc_span::def_id::DefId, core::option::Option<rustc_span::symbol::Ident>), rustc_middle::ty::GenericPredicates>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
  22: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::super_predicates_that_define_assoc_type, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
  23: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::super_predicates_that_define_assoc_type
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:602:17
  24: <rustc_middle::ty::query::TyCtxtAt>::super_predicates_that_define_assoc_type
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:205:17
  25: <rustc_middle::ty::context::TyCtxt>::super_predicates_that_define_assoc_type
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:186:17
  26: rustc_typeck::collect::super_predicates_of
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/collect.rs:1065:5
  27: <rustc_query_impl::queries::super_predicates_of as rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt>>::compute
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:400:17
  28: <rustc_query_system::query::config::QueryVtable<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::compute
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/config.rs:44:9
  29: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:544:67
  30: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
  31: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
  32: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
  33: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
  34: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
  35: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
  36: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
  37: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
  38: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
  39: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_ignore::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:209:9
  40: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:544:22
  41: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:479:21
  42: <core::option::Option<(rustc_query_system::dep_graph::serialized::SerializedDepNodeIndex, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::map::<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}::{closure#0}>
             at /home/aaron/repos/rust/library/core/src/option.rs:487:29
  43: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:477:13
  44: stacker::maybe_grow::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
  45: rustc_data_structures::stack::ensure_sufficient_stack::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
  46: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
  47: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
  48: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
  49: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
  50: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
  51: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
  52: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
  53: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
  54: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
  55: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
  56: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
  57: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:475:22
  58: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
  59: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::super_predicates_of, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
  60: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::super_predicates_of
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:602:17
  61: <rustc_middle::ty::query::TyCtxtAt>::super_predicates_of::<rustc_span::def_id::DefId>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:205:17
  62: <rustc_middle::ty::context::TyCtxt>::super_predicates_of::<rustc_span::def_id::DefId>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:186:17
  63: rustc_typeck::collect::gather_explicit_predicates_of
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/collect.rs:1987:27
  64: rustc_typeck::collect::trait_explicit_predicates_and_bounds
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/collect.rs:2248:5
  65: <rustc_query_impl::queries::trait_explicit_predicates_and_bounds as rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt>>::compute
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:400:17
  66: <rustc_query_system::query::config::QueryVtable<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::compute
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/config.rs:44:9
  67: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:544:67
  68: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
  69: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
  70: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
  71: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
  72: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
  73: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
  74: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
  75: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
  76: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
  77: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_ignore::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:209:9
  78: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:544:22
  79: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:479:21
  80: <core::option::Option<(rustc_query_system::dep_graph::serialized::SerializedDepNodeIndex, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::map::<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}::{closure#0}>
             at /home/aaron/repos/rust/library/core/src/option.rs:487:29
  81: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:477:13
  82: stacker::maybe_grow::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
  83: rustc_data_structures::stack::ensure_sufficient_stack::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
  84: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
  85: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
  86: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
  87: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
  88: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
  89: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
  90: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
  91: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
  92: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
  93: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
  94: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
  95: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:475:22
  96: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, rustc_middle::ty::GenericPredicates>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
  97: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::trait_explicit_predicates_and_bounds, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
  98: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::trait_explicit_predicates_and_bounds
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:602:17
  99: <rustc_middle::ty::query::TyCtxtAt>::trait_explicit_predicates_and_bounds
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:205:17
 100: <rustc_middle::ty::context::TyCtxt>::trait_explicit_predicates_and_bounds
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:186:17
 101: rustc_typeck::collect::explicit_predicates_of
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/collect.rs:2255:37
 102: <rustc_query_impl::queries::explicit_predicates_of as rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt>>::compute
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:400:17
 103: <rustc_query_system::query::config::QueryVtable<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::compute
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/config.rs:44:9
 104: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:544:67
 105: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
 106: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 107: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 108: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 109: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
 110: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 111: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 112: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 113: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
 114: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_ignore::<rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>::{closure#0}, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:209:9
 115: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:544:22
 116: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:479:21
 117: <core::option::Option<(rustc_query_system::dep_graph::serialized::SerializedDepNodeIndex, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::map::<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}::{closure#0}>
             at /home/aaron/repos/rust/library/core/src/option.rs:487:29
 118: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:477:13
 119: stacker::maybe_grow::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
 120: rustc_data_structures::stack::ensure_sufficient_stack::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
 121: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
 122: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 123: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 124: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 125: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
 126: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
 127: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 128: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 129: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 130: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>::{closure#0}, core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
 131: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(rustc_middle::ty::GenericPredicates, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
 132: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:475:22
 133: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::GenericPredicates>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
 134: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::explicit_predicates_of, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
 135: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::explicit_predicates_of
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:602:17
 136: <rustc_middle::ty::query::TyCtxtAt>::explicit_predicates_of::<rustc_span::def_id::DefId>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:205:17
 137: <rustc_middle::ty::context::TyCtxt>::explicit_predicates_of::<rustc_span::def_id::DefId>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:186:17
 138: <rustc_typeck::outlives::explicit::ExplicitPredicatesMap>::explicit_predicates_of::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/outlives/explicit.rs:24:17
 139: <std::collections::hash::map::Entry<rustc_span::def_id::DefId, alloc::collections::btree::map::BTreeMap<rustc_middle::ty::OutlivesPredicate<rustc_middle::ty::subst::GenericArg, &rustc_middle::ty::sty::RegionKind>, rustc_span::span_encoding::Span>>>::or_insert_with::<<rustc_typeck::outlives::explicit::ExplicitPredicatesMap>::explicit_predicates_of::{closure#0}>
             at /home/aaron/repos/rust/library/std/src/collections/hash/map.rs:2306:43
 140: <rustc_typeck::outlives::explicit::ExplicitPredicatesMap>::explicit_predicates_of
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/outlives/explicit.rs:22:9
 141: rustc_typeck::outlives::implicit_infer::check_explicit_predicates
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/outlives/implicit_infer.rs:268:31
 142: rustc_typeck::outlives::implicit_infer::insert_required_predicates_to_be_wf
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/outlives/implicit_infer.rs:207:21
 143: <rustc_typeck::outlives::implicit_infer::InferVisitor as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_item
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/outlives/implicit_infer.rs:74:21
 144: <rustc_hir::hir::Crate>::visit_all_item_likes::<rustc_typeck::outlives::implicit_infer::InferVisitor>
             at /home/aaron/repos/rust/compiler/rustc_hir/src/hir.rs:717:13
 145: rustc_typeck::outlives::implicit_infer::infer_predicates
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/outlives/implicit_infer.rs:40:9
 146: rustc_typeck::outlives::inferred_outlives_crate
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/outlives/mod.rs:74:36
 147: <rustc_query_impl::queries::inferred_outlives_crate as rustc_query_system::query::config::QueryAccessors<rustc_query_impl::plumbing::QueryCtxt>>::compute
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:400:17
 148: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:62
 149: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
 150: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 151: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}, rustc_middle::ty::CratePredicatesMap>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 152: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}::{closure#0}, rustc_middle::ty::CratePredicatesMap>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 153: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
 154: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 155: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}, rustc_middle::ty::CratePredicatesMap>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 156: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>::{closure#0}, rustc_middle::ty::CratePredicatesMap>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 157: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, rustc_middle::ty::CratePredicatesMap>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
 158: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b rustc_middle::ty::CratePredicatesMap) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:26
 159: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}
 160: stacker::maybe_grow::<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
 161: rustc_data_structures::stack::ensure_sufficient_stack::<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
 162: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
 163: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 164: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 165: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 166: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
 167: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
 168: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 169: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 170: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 171: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
 172: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
 173: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:617:9
 174: rustc_query_system::query::plumbing::with_diagnostics::<rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, (rustc_middle::ty::CratePredicatesMap, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:328:18
 175: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:616:51
 176: rustc_query_system::query::plumbing::force_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::ArenaCache<rustc_span::def_id::CrateNum, rustc_middle::ty::CratePredicatesMap>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:746:5
 177: rustc_query_system::query::plumbing::force_query::<rustc_query_impl::queries::inferred_outlives_crate, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:785:5
 178: rustc_query_impl::query_callbacks::inferred_outlives_crate::force_from_dep_node
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:465:25
 179: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::try_force_from_dep_node
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:117:9
 180: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:714:24
 181: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:692:42
 182: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::try_mark_previous_green::<rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:692:42
 183: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::try_mark_green::<rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:623:17
 184: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::try_mark_green_and_read::<rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:595:9
 185: rustc_query_system::query::plumbing::ensure_must_run::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::DefId, core::option::Option<rustc_span::def_id::DefId>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:690:11
 186: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::predicates_of, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:768:13
 187: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::predicates_of
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:602:17
 188: <rustc_middle::ty::query::TyCtxtEnsure>::predicates_of::<rustc_span::def_id::LocalDefId>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:176:17
 189: rustc_typeck::collect::convert_item
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/collect.rs:740:13
 190: <rustc_typeck::collect::CollectItemTypesVisitor as rustc_hir::intravisit::Visitor>::visit_item
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/collect.rs:243:9
 191: <rustc_hir::intravisit::DeepVisitor<rustc_typeck::collect::CollectItemTypesVisitor> as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_item
             at /home/aaron/repos/rust/compiler/rustc_hir/src/intravisit.rs:57:9
 192: <rustc_middle::hir::map::Map>::visit_item_likes_in_module::<rustc_hir::intravisit::DeepVisitor<rustc_typeck::collect::CollectItemTypesVisitor>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/hir/map/mod.rs:479:13
 193: rustc_typeck::collect::collect_mod_item_types
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/collect.rs:63:5
 194: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:62
 195: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
 196: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 197: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 198: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 199: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
 200: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}, ()>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 201: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}, ()>::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 202: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 203: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
 204: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:26
 205: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}
 206: stacker::maybe_grow::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
 207: rustc_data_structures::stack::ensure_sufficient_stack::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
 208: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
 209: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 210: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 211: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 212: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
 213: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
 214: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 215: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 216: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 217: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
 218: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
 219: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:617:9
 220: rustc_query_system::query::plumbing::with_diagnostics::<rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:328:18
 221: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:616:51
 222: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:496:36
 223: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, ()>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
 224: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::collect_mod_item_types, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
 225: <rustc_middle::ty::query::TyCtxtEnsure>::collect_mod_item_types
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:176:17
 226: rustc_typeck::check_crate::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/lib.rs:379:17
 227: <rustc_data_structures::profiling::VerboseTimingGuard>::run::<(), rustc_typeck::check_crate::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/profiling.rs:573:9
 228: <rustc_session::session::Session>::time::<(), rustc_typeck::check_crate::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_session/src/utils.rs:10:9
 229: rustc_typeck::check_crate::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/lib.rs:377:9
 230: <rustc_session::session::Session>::track_errors::<rustc_typeck::check_crate::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_session/src/session.rs:477:22
 231: rustc_typeck::check_crate
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/lib.rs:376:5
 232: rustc_interface::passes::analysis
             at /home/aaron/repos/rust/compiler/rustc_interface/src/passes.rs:855:5
 233: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:62
 234: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
 235: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 236: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 237: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 238: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
 239: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 240: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 241: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 242: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
 243: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:26
 244: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_eval_always_task::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:421:9
 245: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:619:17
 246: stacker::maybe_grow::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
 247: rustc_data_structures::stack::ensure_sufficient_stack::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
 248: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
 249: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 250: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 251: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 252: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
 253: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
 254: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 255: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 256: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 257: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
 258: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
 259: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:617:9
 260: rustc_query_system::query::plumbing::with_diagnostics::<rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:328:18
 261: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:616:51
 262: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:496:36
 263: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
 264: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
 265: <rustc_middle::ty::query::TyCtxtAt>::analysis
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:205:17
 266: <rustc_middle::ty::context::TyCtxt>::analysis
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:186:17
 267: rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}
             at /home/aaron/repos/rust/compiler/rustc_driver/src/lib.rs:431:59
 268: <rustc_interface::passes::QueryContext>::enter::<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/passes.rs:755:42
 269: rustc_middle::ty::context::tls::enter_context::<<rustc_interface::passes::QueryContext>::enter<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 270: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_interface::passes::QueryContext>::enter<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 271: rustc_middle::ty::context::tls::enter_context::<<rustc_interface::passes::QueryContext>::enter<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 272: <rustc_interface::passes::QueryContext>::enter::<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_interface/src/passes.rs:755:9
 273: rustc_driver::run_compiler::{closure#3}::{closure#2}
             at /home/aaron/repos/rust/compiler/rustc_driver/src/lib.rs:431:13
 274: <rustc_interface::interface::Compiler>::enter::<rustc_driver::run_compiler::{closure#3}::{closure#2}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_interface/src/queries.rs:422:19
 275: rustc_driver::run_compiler::{closure#3}
             at /home/aaron/repos/rust/compiler/rustc_driver/src/lib.rs:332:22
 276: rustc_interface::interface::create_compiler_and_run::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/interface.rs:197:13
 277: rustc_span::with_source_map::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_interface::interface::create_compiler_and_run<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_span/src/lib.rs:789:5
 278: rustc_interface::interface::create_compiler_and_run::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>
             at /home/aaron/repos/rust/compiler/rustc_interface/src/interface.rs:191:5
 279: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/interface.rs:213:12
 280: rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/util.rs:155:13
 281: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
 282: rustc_span::with_session_globals::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_span/src/lib.rs:106:5
 283: rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/util.rs:153:9
 284: rustc_interface::util::scoped_thread::<rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/util.rs:128:24
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.52.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z verbose -Z incremental-verify-ich=yes -C embed-bitcode=no -C debuginfo=0 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [super_predicates_that_define_assoc_type] computing the super traits of `db::HirDatabase` [super_predicates_that_define_assoc_type]
#1 [super_predicates_of] computing the super predicates of `db::HirDatabase` [super_predicates_of]
#2 [trait_explicit_predicates_and_bounds] computing explicit predicates of trait `db::HirDatabase` [trait_explicit_predicates_and_bounds]
#3 [explicit_predicates_of] computing explicit predicates of `db::HirDatabase` [explicit_predicates_of]
#4 [inferred_outlives_crate] computing the inferred outlives predicates for items in this crate [inferred_outlives_crate]
#5 [collect_mod_item_types] collecting item types in top-level module [collect_mod_item_types]
#6 [analysis] running analysis passes on this crate [analysis]
end of query stack
error: could not compile `hir_ty`

@Aaron1011
Copy link
Member

The value from the original (non-crashing) run is:

INFO rustc_typeck::collect super_predicates_that_define_assoc_type(DefId(0:2967 ~ hir_ty[1414]::db::HirDatabase), None) = GenericPredicates { parent: None, predicates: [(Binder(TraitPredicate(<Self as hir_def::db::DefDatabase>)), crates/hir_ty/src/db.rs:21:24: 21:35 (#0)), (Binder(TraitPredicate(<Self as base_db::Upcast<(dyn hir_def::db::DefDatabase + ReStatic)>>)), crates/hir_ty/src/db.rs:21:38: 21:61 (#0)), (Binder(TraitPredicate(<Self as base_db::salsa::plumbing::HasQueryGroup<db::HirDatabaseStorage>>)), crates/hir_ty/src/db.rs:20:1: 20:42 (#1102)), (Binder(TraitPredicate(<Self as base_db::salsa::Database>)), crates/hir_ty/src/db.rs:20:1: 20:42 (#1102))] }

@Aaron1011
Copy link
Member

Aaron1011 commented Mar 10, 2021

It looks like the predicates in super_predicates_that_define_assoc_type are the same (except for some SyntaxContext ids, which are not directly hashed), but are present in a different order.

@pnkfelix
Copy link
Member

Epic work @Aaron1011

@Aaron1011
Copy link
Member

This is caused by the use of sort_by_key with a key of DefId:

bounds.trait_bounds.sort_by_key(|(t, _, _)| t.def_id());

A DefId is not stable across compilation sessions (we have DefPathHash for that). In this case, it appears that a CrateNum was getting changed between compilation sessions, causing logically equivalent predicates to get sorted in a different order.

Using a Nightly rustc, 190 tests fail, most with panic messages like this (I didn't get a segfault):

--- tests::test_completion_detail_from_macro_generated_struct_fn_doc_comment stdout ----
thread 'tests::test_completion_detail_from_macro_generated_struct_fn_doc_comment' panicked at 'index out of bounds: the len is 0 but the index is 2958863903', /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/interned.rs:138:16
stack backtrace:
   0: rust_begin_unwind
             at /rustc/fe1bf8e05c39bdcc73fc09e246b7209444e389bc/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/fe1bf8e05c39bdcc73fc09e246b7209444e389bc/library/core/src/panicking.rs:92:14
   2: core::panicking::panic_bounds_check
             at /rustc/fe1bf8e05c39bdcc73fc09e246b7209444e389bc/library/core/src/panicking.rs:69:5
   3: <usize as core::slice::index::SliceIndex<[T]>>::index
   4: core::slice::index::<impl core::ops::index::Index<I> for [T]>::index
   5: <alloc::vec::Vec<T,A> as core::ops::index::Index<I>>::index
   6: salsa::interned::InternTables<K>::slot_for_index
   7: salsa::interned::InternedStorage<Q>::lookup_value
   8: <salsa::interned::LookupInternedStorage<Q,IQ> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
   9: salsa::QueryTable<Q>::try_get
  10: salsa::QueryTable<Q>::get
  11: <DB as hir_def::db::InternDatabase>::lookup_intern_const::__shim
  12: <DB as hir_def::db::InternDatabase>::lookup_intern_const
  13: <hir_def::ConstId as hir_def::Lookup>::lookup
  14: hir_def::data::ConstData::const_data_query
  15: <hir_def::db::ConstDataQuery as salsa::plumbing::QueryFunction>::execute
  16: salsa::derived::slot::Slot<Q,MP>::read_upgrade::{{closure}}
  17: salsa::runtime::Runtime::execute_query_implementation
  18: salsa::derived::slot::Slot<Q,MP>::read_upgrade
  19: salsa::derived::slot::Slot<Q,MP>::read
  20: <salsa::derived::DerivedStorage<Q,MP> as salsa::plumbing::QueryStorageOps<Q>>::try_fetch
  21: salsa::QueryTable<Q>::try_get
  22: salsa::QueryTable<Q>::get
  23: <DB as hir_def::db::DefDatabase>::const_data::__shim
  24: <DB as hir_def::db::DefDatabase>::const_data
  25: salsa::plumbing::get_query_table
  26: <DB as hir_ty::db::HirDatabase>::infer_query::__shim
  27: <DB as hir_ty::db::HirDatabase>::infer_query
  28: hir_ty::db::infer_wait
  29: <DB as hir_ty::db::HirDatabase>::infer
  30: hir::source_analyzer::SourceAnalyzer::new_for_body
  31: hir::semantics::SemanticsImpl::analyze_impl
  32: hir::semantics::SemanticsImpl::analyze
  33: hir::semantics::SemanticsImpl::descend_into_macros
  34: hir::semantics::Semantics<DB>::descend_into_macros
  35: ide_completion::context::CompletionContext::new
             at ./src/context.rs:121:21
  36: ide_completion::completions
             at ./src/lib.rs:107:15
  37: ide_completion::tests::check_detail_and_documentation
             at ./src/lib.rs:175:35
  38: ide_completion::tests::test_completion_detail_from_macro_generated_struct_fn_doc_comment
             at ./src/lib.rs:235:9
  39: ide_completion::tests::test_completion_detail_from_macro_generated_struct_fn_doc_comment::{{closure}}
             at ./src/lib.rs:234:5
  40: core::ops::function::FnOnce::call_once
             at /home/aaron/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
  41: core::ops::function::FnOnce::call_once
             at /rustc/fe1bf8e05c39bdcc73fc09e246b7209444e389bc/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

After changing that line to sort by the DefPathHash, all of the tests pass.

Given the consequences of getting this kind of thing wrong, I think we should set -Z incremental-verify-ich=yes by default.

@Aaron1011
Copy link
Member

Unfortunately, another unstable hash erorr showed up after I fixed the first one:

thread 'rustc' panicked at 'assertion failed: `(left == right)`
  left: `Fingerprint(8537439170242672706, 4648092694241280842)`,
 right: `Fingerprint(212923312148573672, 18320173992410164289): found unstable fingerprints for evaluate_obligation(bfd3008d1b3add5-60969c669005baec): Ok(EvaluatedToOk)`', /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:586:5
stack backtrace:
   0: rust_begin_unwind
             at /home/aaron/repos/rust/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /home/aaron/repos/rust/library/core/src/panicking.rs:92:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed::<rustc_data_structures::fingerprint::Fingerprint, rustc_data_structures::fingerprint::Fingerprint>
             at /home/aaron/repos/rust/library/core/src/panicking.rs:117:5
   4: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_query_impl::plumbing::QueryCtxt, rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:586:5
   5: rustc_query_system::query::plumbing::load_from_disk_and_cache_in_memory::<rustc_query_impl::plumbing::QueryCtxt, rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:554:9
   6: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:479:21
   7: <core::option::Option<(rustc_query_system::dep_graph::serialized::SerializedDepNodeIndex, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::map::<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}::{closure#0}>
             at /home/aaron/repos/rust/library/core/src/option.rs:487:29
   8: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:477:13
   9: stacker::maybe_grow::<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
  10: rustc_data_structures::stack::ensure_sufficient_stack::<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
  11: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
  12: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
  13: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
  14: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
  15: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
  16: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
  17: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
  18: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
  19: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
  20: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>::{closure#0}, core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
  21: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<core::option::Option<(core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>, rustc_query_system::dep_graph::graph::DepNodeIndex)>, rustc_query_system::query::plumbing::try_execute_query<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>::{closure#1}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
  22: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:475:22
  23: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::infer::canonical::Canonical<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::Predicate>>, core::result::Result<rustc_middle::traits::select::EvaluationResult, rustc_middle::traits::select::OverflowError>>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
  24: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::evaluate_obligation, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
  25: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::evaluate_obligation
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:602:17
  26: <rustc_middle::ty::query::TyCtxtAt>::evaluate_obligation
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:205:17
  27: <rustc_middle::ty::context::TyCtxt>::evaluate_obligation
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:186:17
  28: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
             at /home/aaron/repos/rust/compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs:72:9
  29: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
             at /home/aaron/repos/rust/compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs:82:15
  30: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::predicate_must_hold_considering_regions
             at /home/aaron/repos/rust/compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs:49:9
  31: <rustc_trait_selection::traits::fulfill::FulfillProcessor>::process_trait_obligation
             at /home/aaron/repos/rust/compiler/rustc_trait_selection/src/traits/fulfill.rs:613:16
  32: <rustc_trait_selection::traits::fulfill::FulfillProcessor>::progress_changed_obligations
  33: <rustc_trait_selection::traits::fulfill::FulfillProcessor as rustc_data_structures::obligation_forest::ObligationProcessor>::process_obligation
             at /home/aaron/repos/rust/compiler/rustc_trait_selection/src/traits/fulfill.rs:308:9
  34: <rustc_data_structures::obligation_forest::ObligationForest<rustc_trait_selection::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection::traits::fulfill::FulfillProcessor, rustc_data_structures::obligation_forest::Outcome<rustc_trait_selection::traits::fulfill::PendingPredicateObligation, rustc_infer::traits::FulfillmentErrorCode>>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/obligation_forest/mod.rs:448:19
  35: <rustc_trait_selection::traits::fulfill::FulfillmentContext>::select
             at /home/aaron/repos/rust/compiler/rustc_trait_selection/src/traits/fulfill.rs:134:17
  36: <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible
             at /home/aaron/repos/rust/compiler/rustc_trait_selection/src/traits/fulfill.rs:236:9
  37: <rustc_typeck::check::fn_ctxt::FnCtxt>::select_obligations_where_possible::<<rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types::{closure#3}>
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:705:22
  38: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:300:17
  39: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_method_argument_types
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:78:9
  40: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_method_call
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:957:9
  41: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:278:17
  42: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:187:18
  43: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_hint
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:118:9
  44: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_coercable_to_type
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:108:18
  45: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_decl_initializer
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:513:13
  46: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_decl_local
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:525:27
  47: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_stmt
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:557:17
  48: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:637:17
  49: <rustc_typeck::check::fn_ctxt::FnCtxt>::with_breakable_ctxt::<<rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/_impl.rs:1522:22
  50: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_block_with_expected
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/fn_ctxt/checks.rs:635:26
  51: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:275:41
  52: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:187:18
  53: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_hint
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:118:9
  54: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_return_expr
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/expr.rs:714:30
  55: rustc_typeck::check::check::check_fn
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/check.rs:210:9
  56: rustc_typeck::check::typeck_with_fallback::<rustc_typeck::check::typeck::{closure#0}>::{closure#1}
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/mod.rs:524:23
  57: <rustc_typeck::check::inherited::InheritedBuilder>::enter::<rustc_typeck::check::typeck_with_fallback<rustc_typeck::check::typeck::{closure#0}>::{closure#1}, &rustc_middle::ty::context::TypeckResults>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/inherited.rs:105:34
  58: <rustc_infer::infer::InferCtxtBuilder>::enter::<&rustc_middle::ty::context::TypeckResults, <rustc_typeck::check::inherited::InheritedBuilder>::enter<rustc_typeck::check::typeck_with_fallback<rustc_typeck::check::typeck::{closure#0}>::{closure#1}, &rustc_middle::ty::context::TypeckResults>::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_infer/src/infer/mod.rs:583:9
  59: <rustc_typeck::check::inherited::InheritedBuilder>::enter::<rustc_typeck::check::typeck_with_fallback<rustc_typeck::check::typeck::{closure#0}>::{closure#1}, &rustc_middle::ty::context::TypeckResults>
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/inherited.rs:105:9
  60: rustc_typeck::check::typeck_with_fallback::<rustc_typeck::check::typeck::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/mod.rs:493:26
  61: rustc_typeck::check::typeck
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/mod.rs:458:9
  62: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:62
  63: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
  64: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
  65: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}, &rustc_middle::ty::context::TypeckResults>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
  66: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}::{closure#0}, &rustc_middle::ty::context::TypeckResults>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
  67: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
  68: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
  69: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}, &rustc_middle::ty::context::TypeckResults>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
  70: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>::{closure#0}, &rustc_middle::ty::context::TypeckResults>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
  71: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, &rustc_middle::ty::context::TypeckResults>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
  72: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b &rustc_middle::ty::context::TypeckResults) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:26
  73: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}
  74: stacker::maybe_grow::<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
  75: rustc_data_structures::stack::ensure_sufficient_stack::<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
  76: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
  77: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
  78: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
  79: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
  80: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
  81: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
  82: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
  83: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
  84: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
  85: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
  86: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
  87: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:617:9
  88: rustc_query_system::query::plumbing::with_diagnostics::<rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, (&rustc_middle::ty::context::TypeckResults, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:328:18
  89: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:616:51
  90: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:496:36
  91: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::ty::context::TypeckResults>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
  92: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::typeck, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
  93: <rustc_middle::ty::query::TyCtxtEnsure>::typeck
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:176:17
  94: rustc_typeck::check::typeck_item_bodies::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/mod.rs:1147:9
  95: <rustc_middle::ty::context::TyCtxt>::par_body_owners::<rustc_typeck::check::typeck_item_bodies::{closure#0}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/mod.rs:2788:34
  96: <core::slice::iter::Iter<rustc_hir::hir::BodyId> as core::iter::traits::iterator::Iterator>::for_each::<<rustc_middle::ty::context::TyCtxt>::par_body_owners<rustc_typeck::check::typeck_item_bodies::{closure#0}>::{closure#0}>
             at /home/aaron/repos/rust/library/core/src/slice/iter/macros.rs:203:21
  97: <rustc_middle::ty::context::TyCtxt>::par_body_owners::<rustc_typeck::check::typeck_item_bodies::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/mod.rs:2787:9
  98: rustc_typeck::check::typeck_item_bodies
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/check/mod.rs:1146:5
  99: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:62
 100: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
 101: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 102: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 103: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 104: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
 105: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}, ()>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 106: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}, ()>::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 107: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 108: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, ()>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
 109: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, (), for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b ()) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:26
 110: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}
 111: stacker::maybe_grow::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
 112: rustc_data_structures::stack::ensure_sufficient_stack::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
 113: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
 114: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 115: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 116: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 117: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
 118: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
 119: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 120: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 121: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 122: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
 123: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<((), rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
 124: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:617:9
 125: rustc_query_system::query::plumbing::with_diagnostics::<rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, ((), rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:328:18
 126: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:616:51
 127: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:496:36
 128: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, ()>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
 129: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::typeck_item_bodies, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
 130: <rustc_middle::ty::query::TyCtxtAt>::typeck_item_bodies
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:205:17
 131: <rustc_middle::ty::context::TyCtxt>::typeck_item_bodies
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:186:17
 132: rustc_typeck::check_crate::{closure#7}
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/lib.rs:415:46
 133: <rustc_data_structures::profiling::VerboseTimingGuard>::run::<(), rustc_typeck::check_crate::{closure#7}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/profiling.rs:573:9
 134: <rustc_session::session::Session>::time::<(), rustc_typeck::check_crate::{closure#7}>
             at /home/aaron/repos/rust/compiler/rustc_session/src/utils.rs:10:9
 135: rustc_typeck::check_crate
             at /home/aaron/repos/rust/compiler/rustc_typeck/src/lib.rs:415:5
 136: rustc_interface::passes::analysis
             at /home/aaron/repos/rust/compiler/rustc_interface/src/passes.rs:855:5
 137: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:62
 138: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:46
 139: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 140: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 141: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 142: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:76:13
 143: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 144: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 145: rustc_middle::ty::context::tls::with_context::<<rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 146: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/dep_graph/mod.rs:73:9
 147: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:277:26
 148: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_eval_always_task::<rustc_query_impl::plumbing::QueryCtxt, rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>, for<'a, 'b> fn(&'a mut rustc_middle::ich::hcx::StableHashingContext, &'b core::result::Result<(), rustc_errors::ErrorReported>) -> core::option::Option<rustc_data_structures::fingerprint::Fingerprint>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/dep_graph/graph.rs:421:9
 149: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:619:17
 150: stacker::maybe_grow::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.12/src/lib.rs:55:9
 151: rustc_data_structures::stack::ensure_sufficient_stack::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_data_structures/src/stack.rs:16:5
 152: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:169:17
 153: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 154: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 155: rustc_middle::ty::context::tls::enter_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 156: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:168:13
 157: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1767:13
 158: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:40
 159: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1740:22
 160: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1751:9
 161: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1764:9
 162: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<(core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex), rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_query_impl/src/plumbing.rs:157:9
 163: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:617:9
 164: rustc_query_system::query::plumbing::with_diagnostics::<rustc_query_system::query::plumbing::force_query_with_job<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, (core::result::Result<(), rustc_errors::ErrorReported>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:328:18
 165: rustc_query_system::query::plumbing::force_query_with_job::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:616:51
 166: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:496:36
 167: rustc_query_system::query::plumbing::get_query_impl::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::CrateNum, core::result::Result<(), rustc_errors::ErrorReported>>>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:664:5
 168: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
             at /home/aaron/repos/rust/compiler/rustc_query_system/src/query/plumbing.rs:775:9
 169: <rustc_middle::ty::query::TyCtxtAt>::analysis
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:205:17
 170: <rustc_middle::ty::context::TyCtxt>::analysis
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/query/mod.rs:186:17
 171: rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}
             at /home/aaron/repos/rust/compiler/rustc_driver/src/lib.rs:431:59
 172: <rustc_interface::passes::QueryContext>::enter::<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/passes.rs:755:42
 173: rustc_middle::ty::context::tls::enter_context::<<rustc_interface::passes::QueryContext>::enter<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:50
 174: rustc_middle::ty::context::tls::set_tlv::<rustc_middle::ty::context::tls::enter_context<<rustc_interface::passes::QueryContext>::enter<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1707:9
 175: rustc_middle::ty::context::tls::enter_context::<<rustc_interface::passes::QueryContext>::enter<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_middle/src/ty/context.rs:1723:9
 176: <rustc_interface::passes::QueryContext>::enter::<rustc_driver::run_compiler::{closure#3}::{closure#2}::{closure#4}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_interface/src/passes.rs:755:9
 177: rustc_driver::run_compiler::{closure#3}::{closure#2}
             at /home/aaron/repos/rust/compiler/rustc_driver/src/lib.rs:431:13
 178: <rustc_interface::interface::Compiler>::enter::<rustc_driver::run_compiler::{closure#3}::{closure#2}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_errors::ErrorReported>>
             at /home/aaron/repos/rust/compiler/rustc_interface/src/queries.rs:422:19
 179: rustc_driver::run_compiler::{closure#3}
             at /home/aaron/repos/rust/compiler/rustc_driver/src/lib.rs:332:22
 180: rustc_interface::interface::create_compiler_and_run::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/interface.rs:197:13
 181: rustc_span::with_source_map::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_interface::interface::create_compiler_and_run<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_span/src/lib.rs:789:5
 182: rustc_interface::interface::create_compiler_and_run::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>
             at /home/aaron/repos/rust/compiler/rustc_interface/src/interface.rs:191:5
 183: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/interface.rs:213:12
 184: rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/util.rs:155:13
 185: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>
             at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
 186: rustc_span::with_session_globals::<core::result::Result<(), rustc_errors::ErrorReported>, rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}::{closure#0}>
             at /home/aaron/repos/rust/compiler/rustc_span/src/lib.rs:106:5
 187: rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/util.rs:153:9
 188: rustc_interface::util::scoped_thread::<rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_errors::ErrorReported>, rustc_driver::run_compiler::{closure#3}>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}, core::result::Result<(), rustc_errors::ErrorReported>>::{closure#0}
             at /home/aaron/repos/rust/compiler/rustc_interface/src/util.rs:128:24
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.52.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z verbose -Z incremental-verify-ich=yes -C embed-bitcode=no -C debuginfo=0 -C incremental --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `RootDatabase: base_db::Upcast<(dyn hir::db::AstDatabase + ReLateBound(DebruijnIndex(1), BoundRegion { kind: BrAnon(0) }))>` [evaluate_obligation]
#1 [typeck] type-checking `symbol_index::crate_symbols` [typeck]
#2 [typeck_item_bodies] type-checking all item bodies [typeck_item_bodies]
#3 [analysis] running analysis passes on this crate [analysis]
end of query stack
error: could not compile `ide_db`

To learn more, run the command again with --verbose.

I strongly suspect that this is #80691

Aaron1011 added a commit to Aaron1011/rust that referenced this issue Mar 11, 2021
cc rust-lang#82920

The value of a `DefId` is not stable across compilation sessions. If we
sort by `DefIds`, and then include the sorted list as part of a query
result, then the query will no longer be a pure function of its input
(e.g. the `DefId` can change while the `DefPathHash` remains the same).

For reasons that are not yet clear, this issue lead to segfaults and
garbage slice index values when the project in the linked issue was
built with a particular incremental cache.
@michaelwoerister
Copy link
Member

Ouch, that must have been a nasty bug to run into. Thanks for reporting it, @jonas-schievink!

@Aaron1011
Copy link
Member

It would be good to try to figure out exactly why this caused a miscompilation. I'm pretty sure that the order of the bounds can't cause any issues by itself, so I suspect there's some subtle issue with the query system when the hash value is unstable.

@Aaron1011
Copy link
Member

Aaron1011 commented Mar 13, 2021

I've determined the cause of the segfault:

  1. Compilation succeeds, populating the incremental cache
  2. Items in a crate get added/removed, causing the DefIds of unrelated items to change.
  3. Compilation runs again with an incremental cache. The super_predicates_that_define_assoc_type query ends up having green inputs, so the query implementation function runs to re-compute the result
  4. Because of step 2, the DefIds for our predicates we compute are different (though they have the same DefPathHashes as before).
  5. We sort the predicates by DefId, causing them to end up in a different order from before
  6. The order of the predicates returned by super_predicates_that_define_assoc_type ends up influencing the order of methods in a trait object vtable (vtable_methods -> supertraits -> Elaborator -> super_predicates_of -> super_predicates_that_define_assoc_type)
  7. Since we are performing incremental compilation, we end up re-using some code that was generated with the vtable methods in a different order
  8. At runtime, a method call on a trait object ends up invoking a completely different method (via the incorrect vtable), leading to a panic or segfault

This can be seen in the following backtrace:

ef➤  bt
#0  std::panicking::begin_panic_handler () at library/std/src/panicking.rs:493
#1  0x00005555557be471 in core::panicking::panic_fmt () at library/core/src/panicking.rs:92
#2  0x00005555557be432 in core::panicking::panic_bounds_check () at library/core/src/panicking.rs:69
#3  0x00005555564acb2e in core::slice::index::{{impl}}::index<salsa::interned::InternValue<hir_def::AssocItemLoc<hir_def::item_tree::Const>>> (self=0xf7c2b2df, slice=...) at /home/aaron/repos/rust/library/core/src/slice/index.rs:182
#4  0x000055555679a8a7 in core::slice::index::{{impl}}::index<salsa::interned::InternValue<hir_def::AssocItemLoc<hir_def::item_tree::Const>>,usize> (self=..., index=0xf7c2b2df) at /home/aaron/repos/rust/library/core/src/slice/index.rs:15
#5  0x00005555564ea29f in alloc::vec::{{impl}}::index<salsa::interned::InternValue<hir_def::AssocItemLoc<hir_def::item_tree::Const>>,usize,alloc::alloc::Global> (self=0x7ffff0001e48, index=0xf7c2b2df) at /home/aaron/repos/rust/library/alloc/src/vec/mod.rs:2285
#6  0x000055555679dd2f in salsa::interned::InternTables<hir_def::AssocItemLoc<hir_def::item_tree::Const>>::slot_for_index<hir_def::AssocItemLoc<hir_def::item_tree::Const>> (self=0x7ffff0001e28, index=..., revision_now=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/interned.rs:138
#7  0x00005555567a9a5b in salsa::interned::InternedStorage<hir_def::db::InternConstQuery>::lookup_value<hir_def::db::InternConstQuery> (self=0x7ffff0001e20, db=..., index=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/interned.rs:278
#8  0x0000555556799bf7 in salsa::interned::{{impl}}::try_fetch<hir_def::db::InternConstLookupQuery,hir_def::db::InternConstQuery> (self=0x7ffff0001e90, db=..., key=0x7ffff7c2909c) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/interned.rs:492
#9  0x0000555556657221 in salsa::QueryTable<hir_def::db::InternConstLookupQuery>::try_get<hir_def::db::InternConstLookupQuery> (self=0x7ffff7c29138, key=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/lib.rs:494
#10 0x0000555556653931 in salsa::QueryTable<hir_def::db::InternConstLookupQuery>::get<hir_def::db::InternConstLookupQuery> (self=0x7ffff7c29138, key=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/lib.rs:490
#11 0x000055555637345f in hir_def::db::{{impl}}::lookup_intern_const::__shim (db=..., key0=...) at crates/hir_def/src/db.rs:25
#12 0x0000555555982083 in hir_def::db::{{impl}}::lookup_intern_const<ide_db::RootDatabase> (self=0x7ffff7c2b2e0, key0=...) at /home/aaron/repos/rust-analyzer/crates/hir_def/src/db.rs:25
#13 0x00005555562fc0ee in hir_def::{{impl}}::lookup (self=0x7ffff7c2920c, db=...) at crates/hir_def/src/lib.rs:181
#14 0x0000555556370d5d in hir_def::data::ConstData::const_data_query (db=..., konst=...) at crates/hir_def/src/data.rs:179
#15 0x0000555556376737 in hir_def::db::{{impl}}::execute (db=..., key0=...) at crates/hir_def/src/db.rs:99
#16 0x00005555567ec8d0 in salsa::derived::slot::{{impl}}::read_upgrade::{{closure}}<hir_def::db::ConstDataQuery,salsa::derived::AlwaysMemoizeValue> () at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/derived/slot.rs:218
#17 0x00005555568adcde in salsa::runtime::Runtime::execute_query_implementation<DefDatabase,alloc::sync::Arc<hir_def::data::ConstData>,closure-0> (self=0x7ffff7c2b2e8, db=..., database_key_index=..., execute=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/runtime.rs:330
#18 0x00005555567e8661 in salsa::derived::slot::Slot<hir_def::db::ConstDataQuery, salsa::derived::AlwaysMemoizeValue>::read_upgrade<hir_def::db::ConstDataQuery,salsa::derived::AlwaysMemoizeValue> (self=0x7ffff00096c0, db=..., revision_now=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/derived/slot.rs:215
#19 0x000055555681ba18 in salsa::derived::slot::Slot<hir_def::db::ConstDataQuery, salsa::derived::AlwaysMemoizeValue>::read<hir_def::db::ConstDataQuery,salsa::derived::AlwaysMemoizeValue> (self=0x7ffff00096c0, db=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/derived/slot.rs:148
#20 0x0000555556452d67 in salsa::derived::{{impl}}::try_fetch<hir_def::db::ConstDataQuery,salsa::derived::AlwaysMemoizeValue> (self=0x7ffff0003020, db=..., key=0x7ffff7c2a90c) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/derived.rs:170
#21 0x0000555556656881 in salsa::QueryTable<hir_def::db::ConstDataQuery>::try_get<hir_def::db::ConstDataQuery> (self=0x7ffff7c2a9a8, key=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/lib.rs:494
#22 0x0000555556653e1d in salsa::QueryTable<hir_def::db::ConstDataQuery>::get<hir_def::db::ConstDataQuery> (self=0x7ffff7c2a9a8, key=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/lib.rs:490
#23 0x0000555556375f78 in hir_def::db::{{impl}}::const_data::__shim (db=..., key0=...) at crates/hir_def/src/db.rs:49
#24 0x000055555598155c in hir_def::db::{{impl}}::const_data<ide_db::RootDatabase> (self=0x7ffff7c2b2e0, key0=...) at /home/aaron/repos/rust-analyzer/crates/hir_def/src/db.rs:49
#25 0x0000555556004650 in salsa::plumbing::get_query_table<hir_ty::db::InferQueryQuery> (db=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/plumbing.rs:95
#26 0x0000555555c9aad1 in hir_ty::db::{{impl}}::infer_query::__shim (db=..., key0=...) at crates/hir_ty/src/db.rs:20
#27 0x0000555555980bc2 in hir_ty::db::{{impl}}::infer_query<ide_db::RootDatabase> (self=0x7ffff7c2b2e0, key0=...) at /home/aaron/repos/rust-analyzer/crates/hir_ty/src/db.rs:20
#28 0x0000555555c9aa4c in hir_ty::db::infer_wait (db=..., def=...) at crates/hir_ty/src/db.rs:143
#29 0x00005555559814c2 in hir_ty::db::{{impl}}::infer<ide_db::RootDatabase> (self=0x7ffff7c2b2e0, key0=...) at /home/aaron/repos/rust-analyzer/crates/hir_ty/src/db.rs:20
#30 0x0000555555af0c5d in hir::source_analyzer::SourceAnalyzer::new_for_body (db=..., def=..., node=..., offset=...) at crates/hir/src/source_analyzer.rs:66
#31 0x0000555555b2a6d5 in hir::semantics::SemanticsImpl::analyze_impl (self=0x7ffff7c2b370, node=0x7ffff7c2b0d0, offset=...) at crates/hir/src/semantics.rs:578
#32 0x0000555555b2a3ac in hir::semantics::SemanticsImpl::analyze (self=0x7ffff7c2b370, node=0x7ffff7c2b0d0) at crates/hir/src/semantics.rs:561
#33 0x0000555555b28870 in hir::semantics::SemanticsImpl::descend_into_macros (self=0x7ffff7c2b370, token=...) at crates/hir/src/semantics.rs:341
#34 0x00005555558ec9ec in hir::semantics::Semantics<ide_db::RootDatabase>::descend_into_macros<ide_db::RootDatabase> (self=0x7ffff7c2b368, token=...) at /home/aaron/repos/rust-analyzer/crates/hir/src/semantics.rs:127
#35 0x00005555557f21cc in ide_completion::render::tests::sets_deprecated_flag_in_items () at crates/ide_completion/src/render.rs:543
#36 0x00005555558549bd in ide_completion::render::tests::sets_deprecated_flag_in_items::{{closure}} () at crates/ide_completion/src/render.rs:531
#37 0x0000555555828a8e in core::ops::function::FnOnce::call_once<closure-0,()> () at /home/aaron/repos/rust/library/core/src/ops/function.rs:227
#38 0x00005555558a1d96 in core::ops::function::FnOnce::call_once<fn(),()> () at /home/aaron/repos/rust/library/core/src/ops/function.rs:227
#39 test::__rust_begin_short_backtrace<fn()> () at library/test/src/lib.rs:567
#40 0x000055555589890e in alloc::boxed::{{impl}}::call_once<(),FnOnce<()>,alloc::alloc::Global> () at /home/aaron/repos/rust/library/alloc/src/boxed.rs:1546
#41 std::panic::{{impl}}::call_once<(),alloc::boxed::Box<FnOnce<()>, alloc::alloc::Global>> () at /home/aaron/repos/rust/library/std/src/panic.rs:344
#42 std::panicking::try::do_call<std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>, alloc::alloc::Global>>,()> () at /home/aaron/repos/rust/library/std/src/panicking.rs:379
#43 std::panicking::try<(),std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>, alloc::alloc::Global>>> () at /home/aaron/repos/rust/library/std/src/panicking.rs:343
#44 0x000055555588d772 in std::panic::catch_unwind<std::panic::AssertUnwindSafe<alloc::boxed::Box<FnOnce<()>, alloc::alloc::Global>>,()> () at /home/aaron/repos/rust/library/std/src/panic.rs:431
#45 test::run_test_in_process () at library/test/src/lib.rs:589
#46 0x0000555555892634 in test::run_test::run_test_inner::{{closure}} () at library/test/src/lib.rs:486
#47 test::run_test::run_test_inner::{{closure}} () at library/test/src/lib.rs:511
#48 std::sys_common::backtrace::__rust_begin_short_backtrace<closure-1,()> () at /home/aaron/repos/rust/library/std/src/sys_common/backtrace.rs:125
#49 0x0000555555898959 in std::thread::{{impl}}::spawn_unchecked::{{closure}}::{{closure}}<closure-1,()> () at /home/aaron/repos/rust/library/std/src/thread/mod.rs:474
#50 std::panic::{{impl}}::call_once<(),closure-0> () at /home/aaron/repos/rust/library/std/src/panic.rs:344
#51 std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure-0>,()> () at /home/aaron/repos/rust/library/std/src/panicking.rs:379
#52 std::panicking::try<(),std::panic::AssertUnwindSafe<closure-0>> () at /home/aaron/repos/rust/library/std/src/panicking.rs:343
#53 0x00005555558add1f in std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure-0>,()> () at /home/aaron/repos/rust/library/std/src/panic.rs:431
#54 std::thread::{{impl}}::spawn_unchecked::{{closure}}<closure-1,()> () at /home/aaron/repos/rust/library/std/src/thread/mod.rs:473
#55 core::ops::function::FnOnce::call_once<closure-0,()> () at /home/aaron/repos/rust/library/core/src/ops/function.rs:227
#56 0x0000555556d60a1b in alloc::boxed::{{impl}}::call_once<(),FnOnce<()>,alloc::alloc::Global> () at /home/aaron/repos/rust/library/alloc/src/boxed.rs:1546
#57 alloc::boxed::{{impl}}::call_once<(),alloc::boxed::Box<FnOnce<()>, alloc::alloc::Global>,alloc::alloc::Global> () at /home/aaron/repos/rust/library/alloc/src/boxed.rs:1546
#58 0x0000555556d7323a in std::sys::unix::thread::{{impl}}::new::thread_start () at library/std/src/sys/unix/thread.rs:71
#59 0x00007ffff7f54299 in start_thread () from /usr/lib/libpthread.so.0
#60 0x00007ffff7d31053 in clone () from /usr/lib/libc.so.6

The issue occurs here:

#24 0x000055555598155c in hir_def::db::{{impl}}::const_data<ide_db::RootDatabase> (self=0x7ffff7c2b2e0, key0=...) at /home/aaron/repos/rust-analyzer/crates/hir_def/src/db.rs:49
#25 0x0000555556004650 in salsa::plumbing::get_query_table<hir_ty::db::InferQueryQuery> (db=...) at /home/aaron/.cargo/registry/src/github.com-1ecc6299db9ec823/salsa-0.16.0/src/plumbing.rs:95

We attempt to call the method HasQueryGroup::group_storage on a trait object:

https://github.com/salsa-rs/salsa/blob/789cf5e99b9ec40715f30e0aac5bd53e6191d052/src/plumbing.rs#L95

However, we end up invoking the macro-generated method const_data:

https://github.com/salsa-rs/salsa/blob/789cf5e99b9ec40715f30e0aac5bd53e6191d052/components/salsa-macros/src/query_group.rs#L260-L271

This is clearly the wrong method - group_storage takes no parameters besides the &self parameter, but const_data takes two parameters! As a result, we end up with a garbage second parameter key0, leading to an out-of-bounds panic when we try to use key0 as a slice index.

@Aaron1011
Copy link
Member

I am now convinced that we need some form of #83007 (hopefully with better performance). It's not sufficient for a query to be a pure function of the data it accesses (e.g. DefIds) - in order to be sound, a query also needs to ensure that its result does not depend on something that is unstable between compilation sessions. For super_predicates_that_define_assoc_type, simply sorting a vector by DefId was enough to cause unsoundness, since the actual value of the DefIds may differ between compilation sessions (even when the corresponding DefPathHashes are the same).

This is a very subtle requirement. I'm certain that we'll run into this issue again, unless the query system verifies that re-running a query actually produces the expected result (via hashing the new result).

Aaron1011 added a commit to Aaron1011/rust that referenced this issue Mar 13, 2021
Issue rust-lang#82920 showed that the kind of bugs caught by this flag have
soundness implications.

This causes performance regressions of up to 15.2% during incremental
compilation, but this is necessary to catch miscompilations caused by
bugs in query implementations.
bors added a commit to rust-lang-ci/rust that referenced this issue Mar 13, 2021
…-Simulacrum

Turn `-Z incremental-verify-ich` on by default

Issue rust-lang#82920 showed that the kind of bugs caught by this flag have
soundness implications.
@Aaron1011
Copy link
Member

I've managed to minimize this to a short test:

// revisions: rpass1 rpass2

trait MyTrait: One + Two {}
impl<T> One for T {
    fn method_one(&self) -> usize {
		1
    }
}
impl<T> Two for T {
    fn method_two(&self) -> usize {
		2
    }
}
impl<T: One + Two> MyTrait for T {}

fn main() {
    let a: &dyn MyTrait = &true;
    assert_eq!(a.method_one(), 1);
    assert_eq!(a.method_two(), 2);
}

// Re-order traits 'One' and 'Two' between compilation
// sessions

#[cfg(rpass1)]
trait One { fn method_one(&self) -> usize; }

trait Two { fn method_two(&self) -> usize; }

#[cfg(rpass2)]
trait One { fn method_one(&self) -> usize; }

Aaron1011 added a commit to Aaron1011/rust that referenced this issue Mar 13, 2021
Fixes issue rust-lang#82920

Even if an item does not change between compilation sessions, it may end
up with a different `DefId`, since inserting/deleting an item affects
the `DefId`s of all subsequent items. Therefore, we use a `DefPathHash`
in the incremental compilation system, which is stable in the face of
changes to unrelated items.

In particular, the query system will consider the inputs to a query to
be unchanged if any `DefId`s in the inputs have their `DefPathHash`es
unchanged. Queries are pure functions, so the query result should be
unchanged if the query inputs are unchanged.

Unfortunately, it's possible to inadvertantly make a query result
incorrectly change across compilations, by relying on the specific value
of a `DefId`. Specifically, if the query result is a slice that gets
sorted by `DefId`, the precise order will depend on how the `DefId`s got
assigned in a particular compilation session. If some definitions end up
with different `DefId`s (but the same `DefPathHash`es) in a subsequent
compilation session, we will end up re-computing a *different* value for
the query, even though the query system expects the result to unchanged
due to the unchanged inputs.

It turns out that we have been sorting the predicates computed during
`astconv` by their `DefId`. These predicates make their way into the
`super_predicates_that_define_assoc_type`, which ends up getting used to
compute the vtables of trait objects. This, re-ordering these predicates
between compilation sessions can lead to undefined behavior at runtime -
the query system will re-use code built with a *differently ordered*
vtable, resulting in the wrong method being invoked at runtime.

This PR avoids sorting by `DefId` in `astconv`, fixing the
miscompilation. However, it's possible that other instances of this
issue exist - they could also be easily introduced in the future.

To fully fix this issue, we should
1. Turn on `-Z incremental-verify-ich` by default. This will cause the
   compiler to ICE whenver an 'unchanged' query result changes between
   compilation sessions, instead of causing a miscompilation.
2. Remove the `Ord` impls for `CrateNum` and `DefId`. This will make it
   difficult to introduce ICEs in the first place.
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this issue Mar 13, 2021
Avoid sorting predicates by `DefId`

Fixes issue rust-lang#82920

Even if an item does not change between compilation sessions, it may end
up with a different `DefId`, since inserting/deleting an item affects
the `DefId`s of all subsequent items. Therefore, we use a `DefPathHash`
in the incremental compilation system, which is stable in the face of
changes to unrelated items.

In particular, the query system will consider the inputs to a query to
be unchanged if any `DefId`s in the inputs have their `DefPathHash`es
unchanged. Queries are pure functions, so the query result should be
unchanged if the query inputs are unchanged.

Unfortunately, it's possible to inadvertantly make a query result
incorrectly change across compilations, by relying on the specific value
of a `DefId`. Specifically, if the query result is a slice that gets
sorted by `DefId`, the precise order will depend on how the `DefId`s got
assigned in a particular compilation session. If some definitions end up
with different `DefId`s (but the same `DefPathHash`es) in a subsequent
compilation session, we will end up re-computing a *different* value for
the query, even though the query system expects the result to unchanged
due to the unchanged inputs.

It turns out that we have been sorting the predicates computed during
`astconv` by their `DefId`. These predicates make their way into the
`super_predicates_that_define_assoc_type`, which ends up getting used to
compute the vtables of trait objects. This, re-ordering these predicates
between compilation sessions can lead to undefined behavior at runtime -
the query system will re-use code built with a *differently ordered*
vtable, resulting in the wrong method being invoked at runtime.

This PR avoids sorting by `DefId` in `astconv`, fixing the
miscompilation. However, it's possible that other instances of this
issue exist - they could also be easily introduced in the future.

To fully fix this issue, we should
1. Turn on `-Z incremental-verify-ich` by default. This will cause the
   compiler to ICE whenver an 'unchanged' query result changes between
   compilation sessions, instead of causing a miscompilation.
2. Remove the `Ord` impls for `CrateNum` and `DefId`. This will make it
   difficult to introduce ICEs in the first place.
@Aaron1011 Aaron1011 removed E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example labels Mar 14, 2021
bors added a commit to rust-lang-ci/rust that referenced this issue Mar 15, 2021
Avoid sorting predicates by `DefId`

Fixes issue rust-lang#82920

Even if an item does not change between compilation sessions, it may end
up with a different `DefId`, since inserting/deleting an item affects
the `DefId`s of all subsequent items. Therefore, we use a `DefPathHash`
in the incremental compilation system, which is stable in the face of
changes to unrelated items.

In particular, the query system will consider the inputs to a query to
be unchanged if any `DefId`s in the inputs have their `DefPathHash`es
unchanged. Queries are pure functions, so the query result should be
unchanged if the query inputs are unchanged.

Unfortunately, it's possible to inadvertantly make a query result
incorrectly change across compilations, by relying on the specific value
of a `DefId`. Specifically, if the query result is a slice that gets
sorted by `DefId`, the precise order will depend on how the `DefId`s got
assigned in a particular compilation session. If some definitions end up
with different `DefId`s (but the same `DefPathHash`es) in a subsequent
compilation session, we will end up re-computing a *different* value for
the query, even though the query system expects the result to unchanged
due to the unchanged inputs.

It turns out that we have been sorting the predicates computed during
`astconv` by their `DefId`. These predicates make their way into the
`super_predicates_that_define_assoc_type`, which ends up getting used to
compute the vtables of trait objects. This, re-ordering these predicates
between compilation sessions can lead to undefined behavior at runtime -
the query system will re-use code built with a *differently ordered*
vtable, resulting in the wrong method being invoked at runtime.

This PR avoids sorting by `DefId` in `astconv`, fixing the
miscompilation. However, it's possible that other instances of this
issue exist - they could also be easily introduced in the future.

To fully fix this issue, we should
1. Turn on `-Z incremental-verify-ich` by default. This will cause the
   compiler to ICE whenver an 'unchanged' query result changes between
   compilation sessions, instead of causing a miscompilation.
2. Remove the `Ord` impls for `CrateNum` and `DefId`. This will make it
   difficult to introduce ICEs in the first place.
@Aaron1011
Copy link
Member

Fixed in #83074 (not sure why this wasn't auto-closed)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-incr-comp Area: Incremental compilation C-bug Category: This is a bug. I-unsound Issue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness P-high High priority T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

8 participants