Closed
Description
Code
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
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) }
| ^^^^^^
Backtrace
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`.