rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
99.14k stars 12.8k forks source link

error introduced in geo v0.22.1 by "rustdoc: Add item_template macro" #113908

Open coffinmatician opened 1 year ago

coffinmatician commented 1 year ago

Please see #112202 for the PR introducing the regression.

Code

geo v0.22.1 with the following Cargo.lock file. I can try to minify it, but I don't really want to.

Cargo.lock.txt

Meta

See the bisect below (I originally bisected over a larger range, but I wanted to recreate the message quickly):

~/Downloads/geo-0.22.1$ cargo bisect-rustc --preserve --start 2c718d12599ca00dc3957ec604cb3e87fe437124 --end ffb9b61294b96c389d343a4c55b15400249d74e6 -- build --release
bisecting ci builds
starting at 2c718d12599ca00dc3957ec604cb3e87fe437124, ending at ffb9b61294b96c389d343a4c55b15400249d74e6
opening existing repository at "rust.git"
Found origin remote under name `origin`
refreshing repository at "rust.git"
fetching (via local git) commits from 2c718d12599ca00dc3957ec604cb3e87fe437124 to ffb9b61294b96c389d343a4c55b15400249d74e6
opening existing repository at "rust.git"
Found origin remote under name `origin`
refreshing repository at "rust.git"
looking up first commit
looking up second commit
checking that commits are by bors and thus have ci artifacts...
finding bors merge commits
found 2 bors merge commits in the specified range
  commit[0] 2023-07-16: Auto merge of #113738 - jyn514:rollup-mjcya4c, r=jyn514
  commit[1] 2023-07-16: Auto merge of #113430 - Zalathar:hash, r=b-naber
validated commits found, specifying toolchains

checking the start range to verify it passes
installing 2c718d12599ca00dc3957ec604cb3e87fe437124
testing...
RESULT: 2c718d12599ca00dc3957ec604cb3e87fe437124, ===> No

checking the end range to verify it does not pass
installing ffb9b61294b96c389d343a4c55b15400249d74e6
testing...
RESULT: ffb9b61294b96c389d343a4c55b15400249d74e6, ===> Yes

searched toolchains 2c718d12599ca00dc3957ec604cb3e87fe437124 through ffb9b61294b96c389d343a4c55b15400249d74e6
checking last toolchain to determine final result
installing ffb9b61294b96c389d343a4c55b15400249d74e6
testing...

********************************************************************************
Regression in ffb9b61294b96c389d343a4c55b15400249d74e6
********************************************************************************

Attempting to search unrolled perf builds
ERROR: couldn't find perf build comment

Error output

The same error appears without the RUSTFLAGS=-Awarnings it just has a lot of spam.

~/Downloads/geo-0.22.1$ RUSTFLAGS=-Awarnings cargo +1.71.0 build --release
   Compiling geo v0.22.1 (/home/alex/Downloads/geo-0.22.1)
error[E0275]: overflow evaluating the requirement `[closure@src/algorithm/map_coords.rs:888:69: 888:72]: Fn<(geo_types::Coord<T>,)>`
  |
  = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`geo`)
  = note: required for `&[closure@src/algorithm/map_coords.rs:888:69: 888:72]` to implement `Fn<(geo_types::Coord<T>,)>`
  = note: 128 redundant requirements hidden
  = note: required for `&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...` to implement `Fn<(geo_types::Coord<T>,)>`
  = note: the full type name has been written to '/home/alex/Downloads/geo-0.22.1/target/release/deps/geo-31a6d43c26e8a8cc.long-type-10550508034351353399.txt'

For more information about this error, try `rustc --explain E0275`.
error: could not compile `geo` (lib) due to previous error
clubby789 commented 1 year ago

Assuming https://github.com/georust/geo/tree/geo-0.22.1/geo is the crate and version with the issue, I'm not able to compile it as-is, because of a #[deprecated(since = 0.7.5, ..)] attribute, which is invalid syntax for the attribute. If I remove that line, I'm able to bisect it to

searched commit range: https://github.com/rust-lang/rust/compare/5bd28f5eac1ba3569bfa8d49ec3f5acbdfdff7a0...330727467b8fdf2c43b95095a0efae7012c4f83b regressed commit: https://github.com/rust-lang/rust/commit/a20a04e5d68e85935539c16c945f1947559ad3ce -> #113108 cc @compiler-errors

bisected with cargo-bisect-rustc v0.6.6 Host triple: x86_64-unknown-linux-gnu Reproduce with: ```bash cargo bisect-rustc --preserve --start 2023-06-01 --end 2023-07-17 --prompt -- build --release ```

which seems more likely as it changes the type system. Removing the ICE label as this just seems to be a query recursion overflow, please let me know if this is incorrect

clubby789 commented 1 year ago

Actually, this doesn't seem to error any more on the current nightly. Can you verify if the issue still reproduces after updating?

coffinmatician commented 1 year ago

Here is a further minified test case. I am very confused on why changing the module names of things (too much, but minor changes seem to still trigger the issue) seems to stop triggering the issue. It seems very odd. geo-0.22.1-minified.tar.gz

clubby789 commented 1 year ago

Thank you for providing code to reproduce the issue - this one does indeed produce an error on current nightly. Having bisected a couple of times and gotten a different result every time, it seems a little inconsistent to track down.

However, both the error you posted and the one I'm getting are a regular query overflow error (although still likely a bug). An ICE is a specific error where the compiler panics.

saethlin commented 1 year ago

I strongly suspect that this regressed due to my MIR inliner change https://github.com/rust-lang/rust/pull/109247, but I do not know how/why it was subsequently fixed (if it even was). Probably the only way to understand this is to brute-force instead of bisecting this because of the number of times this has probably changed between being an error and not.

Jules-Bertholet commented 1 year ago

@rustbot label regression-untriaged

coffinmatician commented 1 year ago

An ICE is a specific error where the compiler panics.

I was under the impression that ICE means any compiler error that keeps (reasonable) code that is expect to compile from compiling. Thank you for explaining that to me.

@clubby789 Also sorry that I was grumpy yesterday.

coffinmatician commented 1 year ago

I have further minified it again. I think someone should be able to pull in the geo_types crate and make the issue reproducible in a stand alone crate but I haven't had time to do that yet. This issue seems very very weird to me.

geo-0.22.1-minified.tar.gz

eric-seppanen commented 1 year ago

I'm not sure if this was noticed in the above output, but this appears to be a regression in the stable compiler. 1.71.0 fails on this crate, where 1.70.0 succeeded.

eric-seppanen commented 1 year ago

Possibly related to #110475?

apiraino commented 1 year ago

Tried building the MCVE provide in this comment.

apiraino commented 1 year ago

WG-prioritization assigning priority (Zulip discussion).

@rustbot label -I-prioritize +P-medium

trungda commented 1 year ago

Hi, what should we do to work around this issue?

coffinmatician commented 1 year ago

Hi, what should we do to work around this issue?

Your question seems ambiguous to me. If you mean the issue when specifically affecting geo then you can upgrade the crate to work around the issue. If you mean in general then I don't know.

trungda commented 1 year ago

Sorry for the confusion, my crate was depending on specifically a version of geo crate. I've updated my crate to depend on newer version of geo. Thank you!

coffinmatician commented 1 year ago

Tried building the MCVE provide in this comment.

beta rustc 1.72.0-beta.3 (a47f796 2023-07-22) reproduces nightly rustc 1.71.0 (8ede3aa 2023-07-12) does not reproduce

I just tested building from source on 8ede3aa and I can confirm that the issue does not reproducible in the default configuration.

BUT the issue does reproduce with the following patch.

diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
index 943f513415a..f51a5671a78 100644
--- a/src/bootstrap/lib.rs
+++ b/src/bootstrap/lib.rs
@@ -1335,7 +1335,7 @@ fn release(&self, num: &str) -> String {
                 }
             }
             "nightly" => format!("{}-nightly", num),
-            _ => format!("{}-dev", num),
+            _ => format!("{}", num),
         }
     }

@@ -1383,7 +1383,7 @@ fn package_vers(&self, num: &str) -> String {
             "stable" => num.to_string(),
             "beta" => "beta".to_string(),
             "nightly" => "nightly".to_string(),
-            _ => format!("{}-dev", num),
+            _ => format!("{}", num),
         }
     }

The steps I used to build, and test where:

./x.py build
rustup toolchain link 'coffin' build/host/stage2
cd /path/to/geo && cargo +coffin rustc -r

I'm going to think more about this later, and possibly do more testing. I suspect that I'm doing something stupid (I tried this patch/change on a whim as I was thinking about what could affect the rmeta files) and that this isn't actually making a difference, but it seems after poking for a bit I can't figure out else what it could be and it seems to be fine without this patch, and produce the error with it.

coffinmatician commented 1 year ago

So I'm pretty sure I see the issue at this point, but I'm not really sure what the intended functionality of the code is. What is happening is that mir_callgraph_reachable in compiler/rustc_mir_transform/src/inline/cycle.rs is calling process recursively and the if seen.insert(callee.def) { is always false as each iteration has an Instance ( https://doc.rust-lang.org/1.71.0/nightly-rustc/rustc_middle/ty/struct.Instance.html ) with the substs field with an additional level of reference. I have attached a snippet of the relevant trace log.

<<<SNIP>>>
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€0ms TRACE rustc_mir_transform::inline::cycle callee=Instance { def: Item(DefId(0:24 ~ geo[8a70]::map_coords::modern::{impl#1}::try_map_coords_in_place)), substs: [T, E, &&&&&&[closure@src/lib.rs:114:65: 114:68]] }, recursion=5
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”rustc_mir_transform::inline::cycle::process 
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€0ms TRACE rustc_mir_transform::inline::cycle caller=<geo_types::GeometryCollection<T> as modern::MapCoordsInPlace<T>>::try_map_coords_in_place::<E, &&&&&&[closure@src/lib.rs:114:65: 114:68]>
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€0ms TRACE rustc_mir_transform::inline::cycle callee=Instance { def: Item(DefId(0:19 ~ geo[8a70]::map_coords::modern::{impl#0}::try_map_coords_in_place)), substs: [T, E, &&&&&&&[closure@src/lib.rs:114:65: 114:68]] }, recursion=6
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”rustc_mir_transform::inline::cycle::process 
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€0ms TRACE rustc_mir_transform::inline::cycle caller=<Geometry<T> as modern::MapCoordsInPlace<T>>::try_map_coords_in_place::<E, &&&&&&&[closure@src/lib.rs:114:65: 114:68]>
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€0ms TRACE rustc_mir_transform::inline::cycle callee=Instance { def: Item(DefId(0:29 ~ geo[8a70]::map_coords::modern::{impl#2}::try_map_coords_in_place)), substs: [T, E, &&&&&&&[closure@src/lib.rs:114:65: 114:68]] }, recursion=6
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”rustc_mir_transform::inline::cycle::process 
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€0ms TRACE rustc_mir_transform::inline::cycle caller=<geo_types::Triangle<T> as modern::MapCoordsInPlace<T>>::try_map_coords_in_place::<E, &&&&&&&[closure@src/lib.rs:114:65: 114:68]>
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€0ms TRACE rustc_mir_transform::inline::cycle callee=Instance { def: Item(DefId(2:2938 ~ core[6802]::ops::function::impls::{impl#0}::call)), substs: [ReErased, (geo_types::Coord<T>,), &&&&&&[closure@src/lib.rs:114:65: 114:68]] }, recursion=6
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”rustc_mir_transform::inline::cycle::process 
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€0ms TRACE rustc_mir_transform::inline::cycle caller=ops::function::impls::<impl Fn<(Coord<T>,)> for &&&&&&&[closure@src/lib.rs:114:65: 114:68]>::call
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”œβ”€β”˜
<<<SNIP>>>

Now what really confuses me is that the mir_callgraph_reachable really seems like questionable code to me. It has a few design choices that seem like huge red flags to me. First off, it seems to make the assumption that returning true if the reachability of a target from a node is unknown is okay (see the code snippet below). That seems like a huge foot gun to me given the name, and lack of comments which don't clearly indicate the optimistic nature of this function. If no callers are relying upon this behavior then replacing it with a single return true; should be fine from my understanding. Unfortunately (at least on 1.71.0 hash 8ede3aa with the dev patch from my prior commit ( https://github.com/rust-lang/rust/issues/113908#issuecomment-1713386087 )) this is relied upon by other code, and the compiler panics upon attempting to build it with ./x.py build library.

                    stack.pop();
                } else {
                    // Pessimistically assume that there could be recursion.
                    return true;
                }
            }

The next questionable decision to me is if recursion_limit.value_within_limit(*recursion) { which makes the assumption that this function will not be calling any other functions that will increase the recursion limit. Unfortunately this is not the case as let Ok(Some(callee)) = ty::Instance::resolve(tcx, param_env, callee, substs) else { does call other functions that increase the recursion limit. (This is the source of the failure to build the geo crate initially reported in this issue.) Below is the stack trace of this error when I add an unreachable statement (to easily acquire the stack trace) when the recursion limit error is hit.

acoffin@neet1:/scratch/acoffin/geo$ cargo +coffin rustc -r -j 1
   Compiling geo v0.22.1 (/scratch/acoffin/geo)
thread 'rustc' panicked at 'internal error: entered unreachable code: COFFIN', compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:576:9
stack backtrace:
   0:     0x7f68c9513a00 - std::backtrace_rs::backtrace::libunwind::trace::h25107e6b73495497
                               at /scratch/acoffin/rust/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f68c9513a00 - std::backtrace_rs::backtrace::trace_unsynchronized::h2020e1720662bae7
                               at /scratch/acoffin/rust/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f68c9513a00 - std::sys_common::backtrace::_print_fmt::h219744c20e6b0d70
                               at /scratch/acoffin/rust/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7f68c9513a00 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h781c4d1ef38cf7da
                               at /scratch/acoffin/rust/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f68c9580598 - core::fmt::rt::Argument::fmt::he9a3e8f86b6cc1cc
                               at /scratch/acoffin/rust/library/core/src/fmt/rt.rs:138:9
   5:     0x7f68c9580598 - core::fmt::write::h3baa4e371d15f253
                               at /scratch/acoffin/rust/library/core/src/fmt/mod.rs:1094:21
   6:     0x7f68c9524971 - std::io::Write::write_fmt::h406086b16d11e65e
                               at /scratch/acoffin/rust/library/std/src/io/mod.rs:1713:15
   7:     0x7f68c951382f - std::sys_common::backtrace::_print::h82b60ce7bccda43f
                               at /scratch/acoffin/rust/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7f68c951382f - std::sys_common::backtrace::print::h1a6d3b381f4c18eb
                               at /scratch/acoffin/rust/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7f68c94fc4fa - std::panicking::default_hook::{{closure}}::h86dd9dcaaf1132c4
  10:     0x7f68c94fc2ba - std::panicking::default_hook::h25c6b6da43630a28
                               at /scratch/acoffin/rust/library/std/src/panicking.rs:288:9
  11:     0x7f68ca50f6ab - <alloc[3e39f5826e3f6ccb]::boxed::Box<dyn for<'a, 'b> core[6802f80e6ba48c25]::ops::function::Fn<(&'a core[6802f80e6ba48c25]::panic::panic_info::PanicInfo<'b>,), Output = ()> + core[6802f80e6ba48c25]::marker::Send + core[6802f80e6ba48c25]::marker::Sync> as core[6802f80e6ba48c25]::ops::function::Fn<(&core[6802f80e6ba48c25]::panic::panic_info::PanicInfo,)>>::call
                               at /scratch/acoffin/rust/library/alloc/src/boxed.rs:1999:9
  12:     0x7f68ca50f6ab - rustc_driver_impl[4162ea13c11ec076]::install_ice_hook::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_driver_impl/src/lib.rs:1269:13
  13:     0x7f68c94fc9f5 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0394e37868cbb0f6
                               at /scratch/acoffin/rust/library/alloc/src/boxed.rs:1999:9
  14:     0x7f68c94fc9f5 - std::panicking::rust_panic_with_hook::h405a1e12c98a9716
                               at /scratch/acoffin/rust/library/std/src/panicking.rs:709:13
  15:     0x7f68c9530271 - std::panicking::begin_panic_handler::{{closure}}::hf53e31670d36632f
                               at /scratch/acoffin/rust/library/std/src/panicking.rs:595:13
  16:     0x7f68c95301e6 - std::sys_common::backtrace::__rust_end_short_backtrace::h963d408909a43593
                               at /scratch/acoffin/rust/library/std/src/sys_common/backtrace.rs:151:18
  17:     0x7f68c94fc592 - rust_begin_unwind
                               at /scratch/acoffin/rust/library/std/src/panicking.rs:593:5
  18:     0x7f68c94e0803 - core::panicking::panic_fmt::h2ef482953f2d7ac0
                               at /scratch/acoffin/rust/library/core/src/panicking.rs:67:14
  19:     0x7f68cfc75eeb - <rustc_infer[a62f413deabb9a04]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[c5bf2aad25e6256]::traits::error_reporting::TypeErrCtxtExt>::suggest_new_overflow_limit
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:576:9
  20:     0x7f68cfb593e7 - <rustc_infer[a62f413deabb9a04]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[c5bf2aad25e6256]::traits::error_reporting::TypeErrCtxtExt>::build_overflow_error::<rustc_middle[a18d8cc32db836f4]::ty::Predicate>
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:535:13
  21:     0x7f68cfb58cf9 - <rustc_infer[a62f413deabb9a04]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[c5bf2aad25e6256]::traits::error_reporting::TypeErrCtxtExt>::report_overflow_error::<rustc_middle[a18d8cc32db836f4]::ty::Predicate, <rustc_infer[a62f413deabb9a04]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[c5bf2aad25e6256]::traits::error_reporting::TypeErrCtxtExt>::report_overflow_obligation<rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::TraitPredicate>>::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:490:23
  22:     0x7f68cfb59595 - <rustc_infer[a62f413deabb9a04]::infer::error_reporting::TypeErrCtxt as rustc_trait_selection[c5bf2aad25e6256]::traits::error_reporting::TypeErrCtxtExt>::report_overflow_obligation::<rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::TraitPredicate>>
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs:557:9
  23:     0x7f68cfbd64b6 - <rustc_trait_selection[c5bf2aad25e6256]::traits::select::SelectionContext>::check_recursion_depth::<rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::TraitPredicate>>
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/select/mod.rs:1370:21
  24:     0x7f68cfce1bad - <rustc_trait_selection[c5bf2aad25e6256]::traits::select::SelectionContext>::check_recursion_limit::<rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::TraitPredicate>, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::TraitPredicate>>
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/select/mod.rs:1393:9
  25:     0x7f68cfce1bad - <rustc_trait_selection[c5bf2aad25e6256]::traits::select::SelectionContext>::candidate_from_obligation::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/select/mod.rs:312:9
  26:     0x7f68cfce1bad - <rustc_trait_selection[c5bf2aad25e6256]::traits::select::SelectionContext>::candidate_from_obligation
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/select/mod.rs:309:58
  27:     0x7f68cfcc9f53 - <rustc_trait_selection[c5bf2aad25e6256]::traits::select::SelectionContext>::select_from_obligation
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/select/mod.rs:302:9
  28:     0x7f68cfce144e - <rustc_trait_selection[c5bf2aad25e6256]::traits::select::SelectionContext>::select::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/select/mod.rs:267:31
  29:     0x7f68cfce144e - <rustc_trait_selection[c5bf2aad25e6256]::traits::select::SelectionContext>::select
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/select/mod.rs:266:49
  30:     0x7f68cfb5fa60 - <rustc_trait_selection[c5bf2aad25e6256]::traits::fulfill::FulfillProcessor>::process_trait_obligation
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/fulfill.rs:698:15
  31:     0x7f68cfb5dfc1 - <rustc_trait_selection[c5bf2aad25e6256]::traits::fulfill::FulfillProcessor as rustc_data_structures[b374356073577db7]::obligation_forest::ObligationProcessor>::process_obligation
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/fulfill.rs:379:21
  32:     0x7f68cfc8ac6f - <rustc_data_structures[b374356073577db7]::obligation_forest::ObligationForest<rustc_trait_selection[c5bf2aad25e6256]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[c5bf2aad25e6256]::traits::fulfill::FulfillProcessor>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/obligation_forest/mod.rs:457:23
  33:     0x7f68cfb5c1dc - <rustc_trait_selection[c5bf2aad25e6256]::traits::fulfill::FulfillmentContext>::select
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/fulfill.rs:100:13
  34:     0x7f68cfb5c1dc - <rustc_trait_selection[c5bf2aad25e6256]::traits::fulfill::FulfillmentContext as rustc_infer[a62f413deabb9a04]::traits::engine::TraitEngine>::select_where_possible
                               at /scratch/acoffin/rust/compiler/rustc_trait_selection/src/traits/fulfill.rs:149:9
  35:     0x7f68cee36f71 - <dyn rustc_infer[a62f413deabb9a04]::traits::engine::TraitEngine as rustc_infer[a62f413deabb9a04]::traits::engine::TraitEngineExt>::select_all_or_error
                               at /scratch/acoffin/rust/compiler/rustc_infer/src/traits/engine.rs:78:22
  36:     0x7f68ced72eff - rustc_traits[33b55d665e3add47]::codegen::codegen_select_candidate
                               at /scratch/acoffin/rust/compiler/rustc_traits/src/codegen.rs:66:18
  37:     0x7f68cf1b721d - rustc_query_impl[19cdf46298acbef0]::query_impl::codegen_select_candidate::dynamic_query::{closure#2}::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:577:33
  38:     0x7f68cf1b721d - rustc_query_impl[19cdf46298acbef0]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[19cdf46298acbef0]::query_impl::codegen_select_candidate::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:506:18
  39:     0x7f68cefdb832 - rustc_query_impl[19cdf46298acbef0]::query_impl::codegen_select_candidate::dynamic_query::{closure#2}
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:574:25
  40:     0x7f68cefdb832 - <rustc_query_impl[19cdf46298acbef0]::query_impl::codegen_select_candidate::dynamic_query::{closure#2} as core[6802f80e6ba48c25]::ops::function::FnOnce<(rustc_middle[a18d8cc32db836f4]::ty::context::TyCtxt, (rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>))>>::call_once
                               at /scratch/acoffin/rust/library/core/src/ops/function.rs:250:5
  41:     0x7f68cf2163ce - <rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false> as rustc_query_system[6c4fa3df0abe6104]::query::config::QueryConfig<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>>::compute
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/lib.rs:116:9
  42:     0x7f68cf2163ce - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:480:72
  43:     0x7f68cf2163ce - rustc_middle[a18d8cc32db836f4]::ty::context::tls::enter_context::<rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:82:9
  44:     0x7f68cf2163ce - <std[d272bc3fd77aede1]::thread::local::LocalKey<core[6802f80e6ba48c25]::cell::Cell<*const ()>>>::try_with::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::enter_context<rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>
                               at /scratch/acoffin/rust/library/std/src/thread/local.rs:270:16
  45:     0x7f68cf2163ce - <std[d272bc3fd77aede1]::thread::local::LocalKey<core[6802f80e6ba48c25]::cell::Cell<*const ()>>>::with::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::enter_context<rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>
                               at /scratch/acoffin/rust/library/std/src/thread/local.rs:246:9
  46:     0x7f68cf16d3fc - rustc_middle[a18d8cc32db836f4]::ty::context::tls::enter_context::<rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:79:5
  47:     0x7f68cf16d3fc - <rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query::<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:149:13
  48:     0x7f68cf16d3fc - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context::<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:133:9
  49:     0x7f68cf16d3fc - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_context::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:111:36
  50:     0x7f68cf16d3fc - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_context_opt::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_context<rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:100:18
  51:     0x7f68cf16d3fc - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_context::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:111:5
  52:     0x7f68cf16d3fc - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context::<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:124:5
  53:     0x7f68cf16d3fc - <rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query::<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:134:9
  54:     0x7f68cf16d3fc - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:480:18
  55:     0x7f68cf16d3fc - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt, false>
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:413:9
  56:     0x7f68cf16d3fc - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::try_execute_query::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt, false>
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:358:13
  57:     0x7f68cf0b75cd - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::get_query_non_incr::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:810:32
  58:     0x7f68cf0b75cd - stacker[cebf0e108c002c54]::maybe_grow::<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::get_query_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  59:     0x7f68cf0b75cd - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::get_query_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
  60:     0x7f68cf0b75cd - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::get_query_non_incr::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:810:5
  61:     0x7f68cf0b75cd - rustc_query_impl[19cdf46298acbef0]::query_impl::codegen_select_candidate::get_query_non_incr::__rust_end_short_backtrace
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:554:26
  62:     0x7f68cdb72efb - rustc_middle[a18d8cc32db836f4]::query::plumbing::query_get_at::<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<(rustc_middle[a18d8cc32db836f4]::ty::ParamEnv, rustc_middle[a18d8cc32db836f4]::ty::sty::Binder<rustc_middle[a18d8cc32db836f4]::ty::sty::TraitRef>), rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 16usize]>>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/query/plumbing.rs:155:17
  63:     0x7f68cdb72efb - <rustc_middle[a18d8cc32db836f4]::query::plumbing::TyCtxtAt>::codegen_select_candidate
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/query/plumbing.rs:385:31
  64:     0x7f68cdb72efb - <rustc_middle[a18d8cc32db836f4]::ty::context::TyCtxt>::codegen_select_candidate
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/query/plumbing.rs:376:17
  65:     0x7f68cdb72efb - rustc_ty_utils[f90989163af5ac23]::instance::resolve_associated_item
                               at /scratch/acoffin/rust/compiler/rustc_ty_utils/src/instance.rs:83:22
  66:     0x7f68cdb72efb - rustc_ty_utils[f90989163af5ac23]::instance::resolve_instance
                               at /scratch/acoffin/rust/compiler/rustc_ty_utils/src/instance.rs:22:9
  67:     0x7f68cf1b53ac - rustc_query_impl[19cdf46298acbef0]::query_impl::resolve_instance::dynamic_query::{closure#2}::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:577:33
  68:     0x7f68cf1b53ac - rustc_query_impl[19cdf46298acbef0]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[19cdf46298acbef0]::query_impl::resolve_instance::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:506:18
  69:     0x7f68cefda245 - rustc_query_impl[19cdf46298acbef0]::query_impl::resolve_instance::dynamic_query::{closure#2}
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:574:25
  70:     0x7f68cefda245 - <rustc_query_impl[19cdf46298acbef0]::query_impl::resolve_instance::dynamic_query::{closure#2} as core[6802f80e6ba48c25]::ops::function::FnOnce<(rustc_middle[a18d8cc32db836f4]::ty::context::TyCtxt, rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>)>>::call_once
                               at /scratch/acoffin/rust/library/core/src/ops/function.rs:250:5
  71:     0x7f68cf21499e - <rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false> as rustc_query_system[6c4fa3df0abe6104]::query::config::QueryConfig<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>>::compute
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/lib.rs:116:9
  72:     0x7f68cf21499e - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:480:72
  73:     0x7f68cf21499e - rustc_middle[a18d8cc32db836f4]::ty::context::tls::enter_context::<rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:82:9
  74:     0x7f68cf21499e - <std[d272bc3fd77aede1]::thread::local::LocalKey<core[6802f80e6ba48c25]::cell::Cell<*const ()>>>::try_with::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::enter_context<rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>
                               at /scratch/acoffin/rust/library/std/src/thread/local.rs:270:16
  75:     0x7f68cf21499e - <std[d272bc3fd77aede1]::thread::local::LocalKey<core[6802f80e6ba48c25]::cell::Cell<*const ()>>>::with::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::enter_context<rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>
                               at /scratch/acoffin/rust/library/std/src/thread/local.rs:246:9
  76:     0x7f68cf1388c4 - rustc_middle[a18d8cc32db836f4]::ty::context::tls::enter_context::<rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:79:5
  77:     0x7f68cf1388c4 - <rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query::<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:149:13
  78:     0x7f68cf1388c4 - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context::<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:133:9
  79:     0x7f68cf1388c4 - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_context::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:111:36
  80:     0x7f68cf1388c4 - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_context_opt::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_context<rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:100:18
  81:     0x7f68cf1388c4 - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_context::<rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:111:5
  82:     0x7f68cf1388c4 - rustc_middle[a18d8cc32db836f4]::ty::context::tls::with_related_context::<<rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/context/tls.rs:124:5
  83:     0x7f68cf1388c4 - <rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt as rustc_query_system[6c4fa3df0abe6104]::query::QueryContext>::start_query::<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:134:9
  84:     0x7f68cf1388c4 - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job_non_incr::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:480:18
  85:     0x7f68cf1388c4 - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::execute_job::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt, false>
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:413:9
  86:     0x7f68cf1388c4 - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::try_execute_query::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt, false>
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:358:13
  87:     0x7f68cf037599 - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::get_query_non_incr::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:810:32
  88:     0x7f68cf037599 - stacker[cebf0e108c002c54]::maybe_grow::<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::get_query_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  89:     0x7f68cf037599 - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>, rustc_query_system[6c4fa3df0abe6104]::query::plumbing::get_query_non_incr<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
  90:     0x7f68cf037599 - rustc_query_system[6c4fa3df0abe6104]::query::plumbing::get_query_non_incr::<rustc_query_impl[19cdf46298acbef0]::DynamicConfig<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[19cdf46298acbef0]::plumbing::QueryCtxt>
                               at /scratch/acoffin/rust/compiler/rustc_query_system/src/query/plumbing.rs:810:5
  91:     0x7f68cf037599 - rustc_query_impl[19cdf46298acbef0]::query_impl::resolve_instance::get_query_non_incr::__rust_end_short_backtrace
                               at /scratch/acoffin/rust/compiler/rustc_query_impl/src/plumbing.rs:554:26
  92:     0x7f68d0094245 - rustc_middle[a18d8cc32db836f4]::query::plumbing::query_get_at::<rustc_query_system[6c4fa3df0abe6104]::query::caches::DefaultCache<rustc_middle[a18d8cc32db836f4]::ty::ParamEnvAnd<(rustc_span[35ce8c171c0d037e]::def_id::DefId, &rustc_middle[a18d8cc32db836f4]::ty::list::List<rustc_middle[a18d8cc32db836f4]::ty::subst::GenericArg>)>, rustc_middle[a18d8cc32db836f4]::query::erase::Erased<[u8; 32usize]>>>
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/query/plumbing.rs:155:17
  93:     0x7f68d0094245 - <rustc_middle[a18d8cc32db836f4]::query::plumbing::TyCtxtAt>::resolve_instance
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/query/plumbing.rs:385:31
  94:     0x7f68d0094245 - <rustc_middle[a18d8cc32db836f4]::ty::context::TyCtxt>::resolve_instance
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/query/plumbing.rs:376:17
  95:     0x7f68d0094245 - <rustc_middle[a18d8cc32db836f4]::ty::instance::Instance>::resolve::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/instance.rs:402:9
  96:     0x7f68d0094245 - <rustc_middle[a18d8cc32db836f4]::ty::instance::Instance>::resolve
                               at /scratch/acoffin/rust/compiler/rustc_middle/src/ty/instance.rs:394:58
  97:     0x7f68ce2add09 - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:55:36
  98:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
  99:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 100:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 101:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 102:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 103:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 104:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 105:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 106:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 107:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 108:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 109:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 110:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 111:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 112:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 113:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 114:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 115:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 116:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 117:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 118:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 119:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 120:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 121:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 122:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 123:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 124:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 125:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 126:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 127:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 128:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 129:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 130:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 131:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 132:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 133:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 134:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 135:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 136:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 137:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 138:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 139:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 140:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 141:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 142:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 143:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 144:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 145:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 146:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 147:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 148:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 149:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 150:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 151:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 152:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 153:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 154:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 155:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 156:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 157:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 158:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 159:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 160:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 161:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 162:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 163:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 164:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 165:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 166:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 167:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /home/acoffin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 168:     0x7f68ce2ae52d - rustc_data_structures[b374356073577db7]::stack::ensure_sufficient_stack::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
                               at /scratch/acoffin/rust/compiler/rustc_data_structures/src/stack.rs:17:5
 169:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:111:43
 170:     0x7f68ce2ae52d - rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}
                               at /scratch/acoffin/rust/compiler/rustc_mir_transform/src/inline/cycle.rs:112:25
 171:     0x7f68ce2ae52d - stacker[cebf0e108c002c54]::maybe_grow::<bool, rustc_mir_transform[3026d0e4367fa8c6]::inline::cycle::mir_callgraph_reachable::process::{closure#0}>
<<<SNIP>>>

Lastly, I there is the issue at the heart of this problem which I will fully admit to not understanding -- either the the MIR graph is dynamic and potentially infinite in size (at least for Instances even if the number of InstanceDefs is finite) in which case this code currently has design flaws (as outlined above). My reference for this idea potential is from the following snippet:

Monomorphization happens on-the-fly and no monomorphized MIR is ever created. Instead, this type simply couples a potentially generic InstanceDef with some substs, and codegen and const eval will do all required substitution as they run.

- https://doc.rust-lang.org/1.71.0/nightly-rustc/rustc_middle/ty/struct.Instance.html

OR this code, or something it is calling are creating different idential versions of the node other than the difference in the substs field and something is supposed to be deduplicating these nodes.

I WILL FULLY ADMIT TO NOT BEING FAMILIAR WITH THE RUST COMPILER CODE BASE. Everything I said above is taken from my quick observations, and usage of the rust compiler for the first time for this issue. I may be missing obvious details, making incorrect statements, or accusing code of being incorrect that is fine. I'm just writing down everything I think and didn't both to preface every sentence above with "I think".

coffinmatician commented 1 year ago

This issue is very old at this point, and I have investigated what I would consider heavily into this issue and took it as far as I felt comfortable. Possibly with some guidance I could go further, but at this point: I identified the issue, somewhat minified the example (admittedly not as much as I would like, but also I assume that if anyone here really cares that they are more familiar with automated minifaction tools than I am), semi-bisected the issue (it appears to me at this time that something is seeding randomness from the compiler version which seems like a bad idea to me if I'm correct), and even dug in the Rust compiler itself found the offending function (or at least what I believe is the offender and no one has commented further), and made a full write up.

I recognize that this is an open source project, and I shouldn't expect people to work on this issue, but saddens me that the Rust project does not value the correctness of their compiler as highly as I believed. If people feel like I should be doing something to push this issue further forward I would like to know. If I should close this issue, and create one, or more new issues that are more streamlined than this somewhat organic issue I would like to know.

apiraino commented 1 year ago

I think the relationship with T-rustdoc is purely coincidental, the issue lies somewhere in the MIR machinery (as @saethlin points out).

@rustbot label -T-rustdoc

apiraino commented 1 year ago

116896 maybe helps also here

saethlin commented 1 year ago

This problem was discussed in https://github.com/rust-lang/rust/issues/110475 (which I dug up by searching the issue tracker for geo).

Adding this test to the minified example and trying to run it with cargo test causes the compile error without MIR inlining:

#[cfg(test)]
mod tests {
    use super::map_coords::deprecated::*;
    use super::map_coords::modern::{Geometry, GeometryCollection};
    use geo_types::point;

    #[test]
    fn test() {
        let p = point!(x: 1.0, y: 1.0);
        let pe = Geometry::Point(p);
        let mut gc = GeometryCollection::new_from(vec![pe]);
        let _  = gc.try_map_coords_inplace(|p| Ok::<_, ()>(p));
    }
}

As far as I can tell, any attempt to call try_map_coords_inplace will fail to compile because it is polymorphically recursive. Trying to figure out what types are involved is impossible. Builds that do not actually contain a call to try_map_coords_inplace happened to build before because if we don't try to figure out the call graph inside that function we don't run into the recursion. But the MIR inliner needs that information just the same as codegen does. When it tries to ask for it, we realize the code is invalid and produce an error.


This code flakes back and forth between compiling and not compiling across versions because the MIR inliner's cycle detection strategy involves sometimes just giving up on inlining within a crate, and this polymorphic recursion is entirely within a crate. So depending on the crate hash which can depend on the rustc version, the inliner doesn't even look at this function and the library builds.