Repository: rust
Issue: ICE: 'only `variances_of` returns `&[ty::Variance]`'
Labels: I-ICE,T-compiler,C-bug,WG-compiler-parallel

<!--
Thank you for finding an Internal Compiler Error! 🧊  If possible, try to provide
a minimal verifiable example. You can read "Rust Bug Minimization Patterns" for
how to create smaller examples.
http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/
-->

### Code

```Rust
use std::fmt::Debug;

fn elided(_: &impl Copy + 'a) -> _ { x }
fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x }
fn elided2( impl 'b) -> impl 'a + 'a { x }
fn explicit2<'a>(_: &'a impl Copy + 'a) -> impl Copy + 'a { x }
fn foo<'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x }
fn elided3(_: &impl Copy + 'a) -> Box<dyn 'a> { Box::new(x) }
fn x<'b>(_: &'a impl Copy + 'a) -> Box<dyn 'b> { Box::u32(x) }
fn elided4(_: &impl Copy + 'a) ->  new  { x(x) }
trait LifetimeTrait<'a> {}
impl<'a> LifetimeTrait<'a> for &'a Box<dyn 'a> {}

fn main() {}

```


### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->

`rustc --version --verbose`:
```
rustc 1.79.0-nightly (4d570eea0 2024-04-26)
binary: rustc
commit-hash: 4d570eea025a19564429eb52b34ec34e14659f55
commit-date: 2024-04-26
host: x86_64-unknown-linux-gnu
release: 1.79.0-nightly
LLVM version: 18.1.4
```

### Error output
`rustc -Zthreads=16?
```
error: ambiguous `+` in a type
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:3:15
  |
3 | fn elided(_: &impl Copy + 'a) -> _ { x }
  |               ^^^^^^^^^^^^^^ help: use parentheses to disambiguate: `(impl Copy + 'a)`

error: ambiguous `+` in a type
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:4:24
  |
4 | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x }
  |                        ^^^^^^^^^^^^^^ help: use parentheses to disambiguate: `(impl Copy + 'a)`

error: expected identifier, found keyword `impl`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:5:13
  |
5 | fn elided2( impl 'b) -> impl 'a + 'a { x }
  |             ^^^^ expected identifier, found keyword

error: expected one of `:` or `|`, found `'b`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:5:18
  |
5 | fn elided2( impl 'b) -> impl 'a + 'a { x }
  |                  ^^ expected one of `:` or `|`

error: ambiguous `+` in a type
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:6:25
  |
6 | fn explicit2<'a>(_: &'a impl Copy + 'a) -> impl Copy + 'a { x }
  |                         ^^^^^^^^^^^^^^ help: use parentheses to disambiguate: `(impl Copy + 'a)`

error: ambiguous `+` in a type
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:7:16
  |
7 | fn foo<'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x }
  |                ^^^^^^^^^^^^^^ help: use parentheses to disambiguate: `(impl Copy + 'a)`

error: ambiguous `+` in a type
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:8:16
  |
8 | fn elided3(_: &impl Copy + 'a) -> Box<dyn 'a> { Box::new(x) }
  |                ^^^^^^^^^^^^^^ help: use parentheses to disambiguate: `(impl Copy + 'a)`

error: ambiguous `+` in a type
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:9:17
  |
9 | fn x<'b>(_: &'a impl Copy + 'a) -> Box<dyn 'b> { Box::u32(x) }
  |                 ^^^^^^^^^^^^^^ help: use parentheses to disambiguate: `(impl Copy + 'a)`

error: ambiguous `+` in a type
  --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:10:16
   |
10 | fn elided4(_: &impl Copy + 'a) ->  new  { x(x) }
   |                ^^^^^^^^^^^^^^ help: use parentheses to disambiguate: `(impl Copy + 'a)`

error: at least one trait must be specified
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:4:43
  |
4 | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x }
  |                                           ^^^^^^^

error: at least one trait must be specified
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:5:25
  |
5 | fn elided2( impl 'b) -> impl 'a + 'a { x }
  |                         ^^^^^^^^^^^^

error: at least one trait must be specified
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:7:35
  |
7 | fn foo<'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x }
  |                                   ^^^^^^^^^^^^

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:3:27
  |
3 | fn elided(_: &impl Copy + 'a) -> _ { x }
  |          -                ^^ undeclared lifetime
  |          |
  |          help: consider introducing lifetime `'a` here: `<'a>`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:4:21
  |
4 | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x }
  |             -       ^^ undeclared lifetime
  |             |
  |             help: consider introducing lifetime `'a` here: `'a,`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:4:36
  |
4 | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x }
  |             -                      ^^ undeclared lifetime
  |             |
  |             help: consider introducing lifetime `'a` here: `'a,`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:4:48
  |
4 | fn explicit<'b>(_: &'a impl Copy + 'a) -> impl 'a { x }
  |             -                                  ^^ undeclared lifetime
  |             |
  |             help: consider introducing lifetime `'a` here: `'a,`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:5:30
  |
5 | fn elided2( impl 'b) -> impl 'a + 'a { x }
  |           -                  ^^ undeclared lifetime
  |           |
  |           help: consider introducing lifetime `'a` here: `<'a>`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:5:35
  |
5 | fn elided2( impl 'b) -> impl 'a + 'a { x }
  |           -                       ^^ undeclared lifetime
  |           |
  |           help: consider introducing lifetime `'a` here: `<'a>`

error[E0261]: use of undeclared lifetime name `'b`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:7:40
  |
7 | fn foo<'a>(_: &impl Copy + 'a) -> impl 'b + 'a { x }
  |        -                               ^^ undeclared lifetime
  |        |
  |        help: consider introducing lifetime `'b` here: `'b,`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:8:28
  |
8 | fn elided3(_: &impl Copy + 'a) -> Box<dyn 'a> { Box::new(x) }
  |           -                ^^ undeclared lifetime
  |           |
  |           help: consider introducing lifetime `'a` here: `<'a>`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:8:43
  |
8 | fn elided3(_: &impl Copy + 'a) -> Box<dyn 'a> { Box::new(x) }
  |           -                               ^^ undeclared lifetime
  |           |
  |           help: consider introducing lifetime `'a` here: `<'a>`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:9:14
  |
9 | fn x<'b>(_: &'a impl Copy + 'a) -> Box<dyn 'b> { Box::u32(x) }
  |      -       ^^ undeclared lifetime
  |      |
  |      help: consider introducing lifetime `'a` here: `'a,`

error[E0261]: use of undeclared lifetime name `'a`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:9:29
  |
9 | fn x<'b>(_: &'a impl Copy + 'a) -> Box<dyn 'b> { Box::u32(x) }
  |      -                      ^^ undeclared lifetime
  |      |
  |      help: consider introducing lifetime `'a` here: `'a,`

error[E0261]: use of undeclared lifetime name `'a`
  --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:10:28
   |
10 | fn elided4(_: &impl Copy + 'a) ->  new  { x(x) }
   |           -                ^^ undeclared lifetime
   |           |
   |           help: consider introducing lifetime `'a` here: `<'a>`

error[E0412]: cannot find type `new` in this scope
  --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:10:36
   |
10 | fn elided4(_: &impl Copy + 'a) ->  new  { x(x) }
   |                                    ^^^ not found in this scope

warning: unused import: `std::fmt::Debug`
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:1:5
  |
1 | use std::fmt::Debug;
  |     ^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

error[E0224]: at least one trait is required for an object type
  --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:14:40
   |
14 | impl<'a> LifetimeTrait<'a> for &'a Box<dyn 'a> {}
   |                                        ^^^^^^

error[E0224]: at least one trait is required for an object type
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:9:40
  |
9 | fn x<'b>(_: &'a impl Copy + 'a) -> Box<dyn 'b> { Box::u32(x) }
  |                                        ^^^^^^

error[E0224]: at least one trait is required for an object type
 --> 640f7256ec72797afbb92e944ae80a31ef0cc938.rs:8:39
  |
8 | fn elided3(_: &impl Copy + 'a) -> Box<dyn 'a> { Box::new(x) }
  |                                       ^^^^^^
```

<!--
Include a backtrace in the code block by setting `RUST_BACKTRACE=1` in your
environment. E.g. `RUST_BACKTRACE=1 cargo build`.
-->
<details><summary><strong>Backtrace</strong></summary>
<p>

```
error: internal compiler error: compiler/rustc_middle/src/values.rs:147:13: only `variances_of` returns `&[ty::Variance]`

thread 'rustc' panicked at compiler/rustc_middle/src/values.rs:147:13:
Box<dyn Any>
stack backtrace:
   0:     0x720ba73e2015 - std::backtrace_rs::backtrace::libunwind::trace::hf25202e2e00af7fe
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x720ba73e2015 - std::backtrace_rs::backtrace::trace_unsynchronized::hf438bcb2ecba1ba0
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x720ba73e2015 - std::sys_common::backtrace::_print_fmt::haa6838e2497fc7b9
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x720ba73e2015 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he4e508a9a6a9379b
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x720ba743127b - core::fmt::rt::Argument::fmt::hfc565fcb4aff2b68
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/core/src/fmt/rt.rs:165:63
   5:     0x720ba743127b - core::fmt::write::h8615e21a192acba6
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/core/src/fmt/mod.rs:1157:21
   6:     0x720ba73d6c3f - std::io::Write::write_fmt::h9bd05ef323d042aa
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/io/mod.rs:1832:15
   7:     0x720ba73e1dee - std::sys_common::backtrace::_print::hb902e2c471d92c3b
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x720ba73e1dee - std::sys_common::backtrace::print::h216544c8f5319a16
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x720ba73e4759 - std::panicking::default_hook::{{closure}}::h5074792a3bd60472
  10:     0x720ba73e449d - std::panicking::default_hook::h0214c83605124733
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/panicking.rs:298:9
  11:     0x720ba3c32d0c - std[afdd12a1173e2e7c]::panicking::update_hook::<alloc[922c347629d7e4f4]::boxed::Box<rustc_driver_impl[3339b4788993c99a]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x720ba73e4e56 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h85277f00f750df2b
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/alloc/src/boxed.rs:2036:9
  13:     0x720ba73e4e56 - std::panicking::rust_panic_with_hook::hf7e104e22c072107
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/panicking.rs:799:13
  14:     0x720ba3c62654 - std[afdd12a1173e2e7c]::panicking::begin_panic::<rustc_errors[fe7873ef7f0a57]::ExplicitBug>::{closure#0}
  15:     0x720ba3c5f006 - std[afdd12a1173e2e7c]::sys_common::backtrace::__rust_end_short_backtrace::<std[afdd12a1173e2e7c]::panicking::begin_panic<rustc_errors[fe7873ef7f0a57]::ExplicitBug>::{closure#0}, !>
  16:     0x720ba3c5a606 - std[afdd12a1173e2e7c]::panicking::begin_panic::<rustc_errors[fe7873ef7f0a57]::ExplicitBug>
  17:     0x720ba3c6b831 - <rustc_errors[fe7873ef7f0a57]::diagnostic::BugAbort as rustc_errors[fe7873ef7f0a57]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  18:     0x720ba407f6b8 - <rustc_errors[fe7873ef7f0a57]::DiagCtxt>::span_bug::<rustc_span[93d2091650143ca2]::span_encoding::Span, alloc[922c347629d7e4f4]::string::String>
  19:     0x720ba412120d - rustc_middle[fac044f75267a5d2]::util::bug::opt_span_bug_fmt::<rustc_span[93d2091650143ca2]::span_encoding::Span>::{closure#0}
  20:     0x720ba4107a8a - rustc_middle[fac044f75267a5d2]::ty::context::tls::with_opt::<rustc_middle[fac044f75267a5d2]::util::bug::opt_span_bug_fmt<rustc_span[93d2091650143ca2]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  21:     0x720ba410790b - rustc_middle[fac044f75267a5d2]::ty::context::tls::with_context_opt::<rustc_middle[fac044f75267a5d2]::ty::context::tls::with_opt<rustc_middle[fac044f75267a5d2]::util::bug::opt_span_bug_fmt<rustc_span[93d2091650143ca2]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  22:     0x720ba2950717 - rustc_middle[fac044f75267a5d2]::util::bug::span_bug_fmt::<rustc_span[93d2091650143ca2]::span_encoding::Span>
  23:     0x720ba4122cdc - <&[rustc_type_ir[f53998895534aa17]::Variance] as rustc_query_system[9c4a1f9ef0a7cd62]::values::Value<rustc_middle[fac044f75267a5d2]::ty::context::TyCtxt>>::from_cycle_error
  24:     0x720ba4479240 - <rustc_query_impl[2aac348f2d18b4c6]::query_impl::variances_of::dynamic_query::{closure#3} as core[b57b4d11596df046]::ops::function::FnOnce<(rustc_middle[fac044f75267a5d2]::ty::context::TyCtxt, &rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::CycleError, rustc_span[93d2091650143ca2]::ErrorGuaranteed)>>::call_once
  25:     0x720ba440d586 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::mk_cycle::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt>
  26:     0x720ba57d4e01 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  27:     0x720ba57d4121 - rustc_query_impl[2aac348f2d18b4c6]::query_impl::variances_of::get_query_non_incr::__rust_end_short_backtrace
  28:     0x720ba5b12229 - rustc_middle[fac044f75267a5d2]::query::plumbing::query_get_at::<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 16usize]>>>
  29:     0x720ba505a762 - rustc_middle[fac044f75267a5d2]::ty::relate::structurally_relate_tys::<rustc_infer[e7916b8eaa10188e]::infer::relate::generalize::Generalizer>::{closure#0}
  30:     0x720ba50543a3 - <rustc_infer[e7916b8eaa10188e]::infer::relate::generalize::Generalizer as rustc_middle[fac044f75267a5d2]::ty::relate::TypeRelation>::tys::{closure#0}
  31:     0x720ba5048148 - <rustc_infer[e7916b8eaa10188e]::infer::relate::type_relating::TypeRelating as rustc_middle[fac044f75267a5d2]::ty::relate::TypeRelation>::tys
  32:     0x720ba5b0e1d0 - <rustc_hir_typeck[52c35745c0d9c41b]::coercion::Coerce>::unify_and::<rustc_hir_typeck[52c35745c0d9c41b]::coercion::identity>
  33:     0x720ba5b1e351 - <rustc_hir_typeck[52c35745c0d9c41b]::fn_ctxt::FnCtxt>::coerce
  34:     0x720ba5b2c18f - <rustc_hir_typeck[52c35745c0d9c41b]::fn_ctxt::FnCtxt>::check_block_with_expected
  35:     0x720ba5b35342 - <rustc_hir_typeck[52c35745c0d9c41b]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  36:     0x720ba5377f1c - rustc_hir_typeck[52c35745c0d9c41b]::check::check_fn
  37:     0x720ba536d5ed - rustc_hir_typeck[52c35745c0d9c41b]::typeck
  38:     0x720ba536cfd1 - rustc_query_impl[2aac348f2d18b4c6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2aac348f2d18b4c6]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>
  39:     0x720ba541dcb1 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::VecCache<rustc_span[93d2091650143ca2]::def_id::LocalDefId, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  40:     0x720ba541c9d6 - rustc_query_impl[2aac348f2d18b4c6]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  41:     0x720ba59b0f2f - rustc_middle[fac044f75267a5d2]::query::plumbing::query_get_at::<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::VecCache<rustc_span[93d2091650143ca2]::def_id::LocalDefId, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>>
  42:     0x720ba569cfef - rustc_hir_analysis[a60cccb823c49a1]::collect::infer_return_ty_for_fn_sig
  43:     0x720ba59b180f - rustc_hir_analysis[a60cccb823c49a1]::collect::fn_sig
  44:     0x720ba520c1bf - rustc_query_impl[2aac348f2d18b4c6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2aac348f2d18b4c6]::query_impl::fn_sig::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 24usize]>>
  45:     0x720ba520c18f - <rustc_query_impl[2aac348f2d18b4c6]::query_impl::fn_sig::dynamic_query::{closure#2} as core[b57b4d11596df046]::ops::function::FnOnce<(rustc_middle[fac044f75267a5d2]::ty::context::TyCtxt, rustc_span[93d2091650143ca2]::def_id::DefId)>>::call_once
  46:     0x720ba520e1ac - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  47:     0x720ba520dbe3 - rustc_query_impl[2aac348f2d18b4c6]::query_impl::fn_sig::get_query_non_incr::__rust_end_short_backtrace
  48:     0x720ba56bde90 - rustc_middle[fac044f75267a5d2]::query::plumbing::query_get_at::<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 24usize]>>>
  49:     0x720ba57d857b - <rustc_hir_analysis[a60cccb823c49a1]::variance::constraints::ConstraintContext>::build_constraints_for_item
  50:     0x720ba2b73276 - rustc_hir_analysis[a60cccb823c49a1]::variance::crate_variances
  51:     0x720ba5dd4f22 - rustc_query_impl[2aac348f2d18b4c6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2aac348f2d18b4c6]::query_impl::crate_variances::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>
  52:     0x720ba5dd42b4 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::SingleCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  53:     0x720ba5dd3860 - rustc_query_impl[2aac348f2d18b4c6]::query_impl::crate_variances::get_query_non_incr::__rust_end_short_backtrace
  54:     0x720ba57d6587 - rustc_hir_analysis[a60cccb823c49a1]::variance::variances_of
  55:     0x720ba57d61e4 - rustc_query_impl[2aac348f2d18b4c6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2aac348f2d18b4c6]::query_impl::variances_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 16usize]>>
  56:     0x720ba57d61c9 - <rustc_query_impl[2aac348f2d18b4c6]::query_impl::variances_of::dynamic_query::{closure#2} as core[b57b4d11596df046]::ops::function::FnOnce<(rustc_middle[fac044f75267a5d2]::ty::context::TyCtxt, rustc_span[93d2091650143ca2]::def_id::DefId)>>::call_once
  57:     0x720ba57d4598 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  58:     0x720ba57d4121 - rustc_query_impl[2aac348f2d18b4c6]::query_impl::variances_of::get_query_non_incr::__rust_end_short_backtrace
  59:     0x720ba5b12229 - rustc_middle[fac044f75267a5d2]::query::plumbing::query_get_at::<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 16usize]>>>
  60:     0x720ba505a762 - rustc_middle[fac044f75267a5d2]::ty::relate::structurally_relate_tys::<rustc_infer[e7916b8eaa10188e]::infer::relate::generalize::Generalizer>::{closure#0}
  61:     0x720ba50543a3 - <rustc_infer[e7916b8eaa10188e]::infer::relate::generalize::Generalizer as rustc_middle[fac044f75267a5d2]::ty::relate::TypeRelation>::tys::{closure#0}
  62:     0x720ba5048148 - <rustc_infer[e7916b8eaa10188e]::infer::relate::type_relating::TypeRelating as rustc_middle[fac044f75267a5d2]::ty::relate::TypeRelation>::tys
  63:     0x720ba5b0e1d0 - <rustc_hir_typeck[52c35745c0d9c41b]::coercion::Coerce>::unify_and::<rustc_hir_typeck[52c35745c0d9c41b]::coercion::identity>
  64:     0x720ba5b1e351 - <rustc_hir_typeck[52c35745c0d9c41b]::fn_ctxt::FnCtxt>::coerce
  65:     0x720ba5b2c18f - <rustc_hir_typeck[52c35745c0d9c41b]::fn_ctxt::FnCtxt>::check_block_with_expected
  66:     0x720ba5b35342 - <rustc_hir_typeck[52c35745c0d9c41b]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  67:     0x720ba5377f1c - rustc_hir_typeck[52c35745c0d9c41b]::check::check_fn
  68:     0x720ba536d5ed - rustc_hir_typeck[52c35745c0d9c41b]::typeck
  69:     0x720ba536cfd1 - rustc_query_impl[2aac348f2d18b4c6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2aac348f2d18b4c6]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>
  70:     0x720ba541dcb1 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::VecCache<rustc_span[93d2091650143ca2]::def_id::LocalDefId, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  71:     0x720ba541c9d6 - rustc_query_impl[2aac348f2d18b4c6]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  72:     0x720ba59b0f2f - rustc_middle[fac044f75267a5d2]::query::plumbing::query_get_at::<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::VecCache<rustc_span[93d2091650143ca2]::def_id::LocalDefId, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>>
  73:     0x720ba5d84f18 - rustc_hir_analysis[a60cccb823c49a1]::collect::type_of::type_of_opaque
  74:     0x720ba5d84e6b - rustc_query_impl[2aac348f2d18b4c6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2aac348f2d18b4c6]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>
  75:     0x720ba50a3c17 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  76:     0x720ba601625e - rustc_query_impl[2aac348f2d18b4c6]::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
  77:     0x720ba56bd454 - rustc_middle[fac044f75267a5d2]::query::plumbing::query_get_at::<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>>
  78:     0x720ba2caf318 - rustc_hir_analysis[a60cccb823c49a1]::collect::type_of::type_of
  79:     0x720ba50a5022 - rustc_query_impl[2aac348f2d18b4c6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2aac348f2d18b4c6]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>
  80:     0x720ba50a3c17 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  81:     0x720ba50a371b - rustc_query_impl[2aac348f2d18b4c6]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  82:     0x720ba56bd454 - rustc_middle[fac044f75267a5d2]::query::plumbing::query_get_at::<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::DefIdCache<rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 8usize]>>>
  83:     0x720ba5f8a7ab - rustc_hir_analysis[a60cccb823c49a1]::check::check::check_item_type
  84:     0x720ba56af89b - rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_well_formed
  85:     0x720ba56ae36d - rustc_query_impl[2aac348f2d18b4c6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2aac348f2d18b4c6]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 1usize]>>
  86:     0x720ba56adb00 - rustc_query_system[9c4a1f9ef0a7cd62]::query::plumbing::try_execute_query::<rustc_query_impl[2aac348f2d18b4c6]::DynamicConfig<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::VecCache<rustc_hir[53aa510b1c4945fe]::hir_id::OwnerId, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[2aac348f2d18b4c6]::plumbing::QueryCtxt, false>
  87:     0x720ba56ad87f - rustc_query_impl[2aac348f2d18b4c6]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  88:     0x720ba56ad7cf - rustc_middle[fac044f75267a5d2]::query::plumbing::query_ensure_error_guaranteed::<rustc_query_system[9c4a1f9ef0a7cd62]::query::caches::VecCache<rustc_hir[53aa510b1c4945fe]::hir_id::OwnerId, rustc_middle[fac044f75267a5d2]::query::erase::Erased<[u8; 1usize]>>, ()>
  89:     0x720ba3d0487f - rayon[753075a1b654ae7c]::iter::plumbing::bridge_producer_consumer::helper::<rayon[753075a1b654ae7c]::slice::IterProducer<rustc_hir[53aa510b1c4945fe]::hir::ItemId>, rayon[753075a1b654ae7c]::iter::filter_map::FilterMapConsumer<rayon[753075a1b654ae7c]::iter::reduce::ReduceConsumer<<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::and<()>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}>>
  90:     0x720ba3d312e3 - <rayon_core[cf8f8c64e3806182]::job::StackJob<rayon_core[cf8f8c64e3806182]::latch::SpinLatch, rayon_core[cf8f8c64e3806182]::join::join_context::call_b<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>, rayon[753075a1b654ae7c]::iter::plumbing::bridge_producer_consumer::helper<rayon[753075a1b654ae7c]::slice::IterProducer<rustc_hir[53aa510b1c4945fe]::hir::ItemId>, rayon[753075a1b654ae7c]::iter::filter_map::FilterMapConsumer<rayon[753075a1b654ae7c]::iter::reduce::ReduceConsumer<<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::and<()>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}>::{closure#0}, core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>> as rayon_core[cf8f8c64e3806182]::job::Job>::execute
  91:     0x720ba38156a9 - <rayon_core[cf8f8c64e3806182]::registry::WorkerThread>::wait_until_cold
  92:     0x720ba3d1d40d - rayon_core[cf8f8c64e3806182]::join::join_context::<rayon[753075a1b654ae7c]::iter::plumbing::bridge_producer_consumer::helper<rayon[753075a1b654ae7c]::slice::IterProducer<rustc_hir[53aa510b1c4945fe]::hir::ItemId>, rayon[753075a1b654ae7c]::iter::filter_map::FilterMapConsumer<rayon[753075a1b654ae7c]::iter::reduce::ReduceConsumer<<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::and<()>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}>>::{closure#0}, rayon[753075a1b654ae7c]::iter::plumbing::bridge_producer_consumer::helper<rayon[753075a1b654ae7c]::slice::IterProducer<rustc_hir[53aa510b1c4945fe]::hir::ItemId>, rayon[753075a1b654ae7c]::iter::filter_map::FilterMapConsumer<rayon[753075a1b654ae7c]::iter::reduce::ReduceConsumer<<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::and<()>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}, core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>, core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::{closure#0}
  93:     0x720ba3d04a93 - rayon[753075a1b654ae7c]::iter::plumbing::bridge_producer_consumer::helper::<rayon[753075a1b654ae7c]::slice::IterProducer<rustc_hir[53aa510b1c4945fe]::hir::ItemId>, rayon[753075a1b654ae7c]::iter::filter_map::FilterMapConsumer<rayon[753075a1b654ae7c]::iter::reduce::ReduceConsumer<<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::and<()>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}>>
  94:     0x720ba3d312e3 - <rayon_core[cf8f8c64e3806182]::job::StackJob<rayon_core[cf8f8c64e3806182]::latch::SpinLatch, rayon_core[cf8f8c64e3806182]::join::join_context::call_b<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>, rayon[753075a1b654ae7c]::iter::plumbing::bridge_producer_consumer::helper<rayon[753075a1b654ae7c]::slice::IterProducer<rustc_hir[53aa510b1c4945fe]::hir::ItemId>, rayon[753075a1b654ae7c]::iter::filter_map::FilterMapConsumer<rayon[753075a1b654ae7c]::iter::reduce::ReduceConsumer<<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::and<()>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}>, rustc_data_structures[d6fa27de0aa046ab]::sync::parallel::enabled::try_par_for_each_in<&[rustc_hir[53aa510b1c4945fe]::hir::ItemId], rustc_span[93d2091650143ca2]::ErrorGuaranteed, <rustc_middle[fac044f75267a5d2]::hir::ModuleItems>::par_items<rustc_hir_analysis[a60cccb823c49a1]::check::wfcheck::check_mod_type_wf::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}>>::{closure#1}>::{closure#0}, core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>> as rayon_core[cf8f8c64e3806182]::job::Job>::execute
  95:     0x720ba38156a9 - <rayon_core[cf8f8c64e3806182]::registry::WorkerThread>::wait_until_cold
  96:     0x720ba38125e9 - <rayon_core[cf8f8c64e3806182]::registry::ThreadBuilder>::run
  97:     0x720ba3c350f7 - <<crossbeam_utils[e5e25af5fb81fd01]::thread::ScopedThreadBuilder>::spawn<<rayon_core[cf8f8c64e3806182]::ThreadPoolBuilder>::build_scoped<rustc_interface[5229a2b0633dffa3]::util::run_in_thread_pool_with_globals<rustc_interface[5229a2b0633dffa3]::interface::run_compiler<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>, rustc_driver_impl[3339b4788993c99a]::run_compiler::{closure#0}>::{closure#1}, core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#0}, rustc_interface[5229a2b0633dffa3]::util::run_in_thread_pool_with_globals<rustc_interface[5229a2b0633dffa3]::interface::run_compiler<core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>, rustc_driver_impl[3339b4788993c99a]::run_compiler::{closure#0}>::{closure#1}, core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::{closure#3}::{closure#0}::{closure#1}, core[b57b4d11596df046]::result::Result<(), rustc_span[93d2091650143ca2]::ErrorGuaranteed>>::{closure#0}::{closure#0}::{closure#0}, ()>::{closure#0} as core[b57b4d11596df046]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  98:     0x720ba3c296ce - std[afdd12a1173e2e7c]::sys_common::backtrace::__rust_begin_short_backtrace::<alloc[922c347629d7e4f4]::boxed::Box<dyn core[b57b4d11596df046]::ops::function::FnOnce<(), Output = ()> + core[b57b4d11596df046]::marker::Send>, ()>
  99:     0x720ba3c34da5 - <<std[afdd12a1173e2e7c]::thread::Builder>::spawn_unchecked_<alloc[922c347629d7e4f4]::boxed::Box<dyn core[b57b4d11596df046]::ops::function::FnOnce<(), Output = ()> + core[b57b4d11596df046]::marker::Send>, ()>::{closure#2} as core[b57b4d11596df046]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
 100:     0x720ba73eec8b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h4dac72dce20215ab
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/alloc/src/boxed.rs:2022:9
 101:     0x720ba73eec8b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h375d8e0aef16bda1
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/alloc/src/boxed.rs:2022:9
 102:     0x720ba73eec8b - std::sys::pal::unix::thread::Thread::new::thread_start::h5cf43122e165be8d
                               at /rustc/4d570eea025a19564429eb52b34ec34e14659f55/library/std/src/sys/pal/unix/thread.rs:108:17
 103:     0x720ba718d55a - <unknown>
 104:     0x720ba720aa3c - <unknown>
 105:                0x0 - <unknown>

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: please make sure that you have updated to the latest nightly

note: please attach the file at `/tmp/im/rustc-ice-2024-04-26T20_33_12-1888606.txt` to your bug report

note: compiler flags: -Z threads=16

query stack during panic:
#0 [typeck] type-checking `elided`
#1 [fn_sig] computing function signature of `elided`
#2 [crate_variances] computing the variances for items in this crate
#3 [variances_of] computing the variances of `x`
#4 [typeck] type-checking `explicit`
#5 [type_of_opaque] computing type of opaque `explicit::{opaque#0}`
#6 [type_of] computing type of `explicit::{opaque#0}`
#7 [check_well_formed] checking that `explicit::{opaque#0}` is well-formed
#8 [check_mod_type_wf] checking that types are well-formed in top-level module
#9 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 29 previous errors; 1 warning emitted

Some errors have detailed explanations: E0224, E0261, E0412.
For more information about an error, try `rustc --explain E0224`.
```

</p>
</details>