error: internal compiler error: compiler/rustc_pattern_analysis/src/rustc.rs:235:22: Unexpected type for constructor `Struct`: dyn [Binder(Trait(std::iter::Iterator), []), Binder(Projection(ExistentialProjection { def_id: DefId(2:8346 ~ core[5d06]::iter::traits::iterator::Iterator::Item), args: [], term: Term::Ty(&'{erased} ()) }), [])] + '{erased}
thread 'rustc' panicked at compiler/rustc_pattern_analysis/src/rustc.rs:235:22:
Box<dyn Any>
stack backtrace:
0: 0x10d2abc33 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h64c2afb309c31778
1: 0x10d2f76eb - core::fmt::write::hc23fab116e688c5a
2: 0x10d2a1d7e - std::io::Write::write_fmt::hc554712574aee1b1
3: 0x10d2aba21 - std::sys_common::backtrace::print::h8d045d1d6d8eda73
4: 0x10d2ae719 - std::panicking::default_hook::{{closure}}::h65ac21535f58ee0a
5: 0x10d2ae460 - std::panicking::default_hook::h24915649deb9e4fc
6: 0x115f1d56c - std[28e242a172f62cc5]::panicking::update_hook::<alloc[d18bf54b8bbef4a6]::boxed::Box<rustc_driver_impl[a82bc910fff4ad06]::install_ice_hook::{closure#0}>>::{closure#0}
7: 0x10d2af23c - std::panicking::rust_panic_with_hook::hfb2063d444201996
8: 0x115f8418a - std[28e242a172f62cc5]::panicking::begin_panic::<rustc_errors[748ffab8893d222]::ExplicitBug>::{closure#0}
9: 0x115f7c6b9 - std[28e242a172f62cc5]::sys_common::backtrace::__rust_end_short_backtrace::<std[28e242a172f62cc5]::panicking::begin_panic<rustc_errors[748ffab8893d222]::ExplicitBug>::{closure#0}, !>
10: 0x11a6b3f19 - std[28e242a172f62cc5]::panicking::begin_panic::<rustc_errors[748ffab8893d222]::ExplicitBug>
11: 0x115f978d6 - <rustc_errors[748ffab8893d222]::diagnostic::BugAbort as rustc_errors[748ffab8893d222]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
12: 0x116a7275e - rustc_middle[e34a00149b4583d7]::util::bug::opt_span_bug_fmt::<rustc_span[708ae0672d259dca]::span_encoding::Span>::{closure#0}
13: 0x116a23417 - rustc_middle[e34a00149b4583d7]::ty::context::tls::with_opt::<rustc_middle[e34a00149b4583d7]::util::bug::opt_span_bug_fmt<rustc_span[708ae0672d259dca]::span_encoding::Span>::{closure#0}, !>::{closure#0}
14: 0x116a22f25 - rustc_middle[e34a00149b4583d7]::ty::context::tls::with_context_opt::<rustc_middle[e34a00149b4583d7]::ty::context::tls::with_opt<rustc_middle[e34a00149b4583d7]::util::bug::opt_span_bug_fmt<rustc_span[708ae0672d259dca]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
15: 0x11a772a0b - rustc_middle[e34a00149b4583d7]::util::bug::bug_fmt
16: 0x117087998 - <rustc_pattern_analysis[44ef45dd33bf8897]::rustc::RustcPatCtxt as rustc_pattern_analysis[44ef45dd33bf8897]::PatCx>::ctor_sub_tys
17: 0x1170912d9 - rustc_pattern_analysis[44ef45dd33bf8897]::usefulness::compute_exhaustiveness_and_usefulness::<rustc_pattern_analysis[44ef45dd33bf8897]::rustc::RustcPatCtxt>
18: 0x117091c87 - rustc_pattern_analysis[44ef45dd33bf8897]::usefulness::compute_exhaustiveness_and_usefulness::<rustc_pattern_analysis[44ef45dd33bf8897]::rustc::RustcPatCtxt>
19: 0x117091c87 - rustc_pattern_analysis[44ef45dd33bf8897]::usefulness::compute_exhaustiveness_and_usefulness::<rustc_pattern_analysis[44ef45dd33bf8897]::rustc::RustcPatCtxt>
20: 0x11708c477 - rustc_pattern_analysis[44ef45dd33bf8897]::analyze_match
21: 0x116b6e783 - <rustc_mir_build[f8655712974bcade]::thir::pattern::check_match::MatchVisitor>::analyze_patterns
22: 0x116ba23c5 - <rustc_mir_build[f8655712974bcade]::thir::pattern::check_match::MatchVisitor>::check_binding_is_irrefutable
23: 0x116ba2275 - <rustc_mir_build[f8655712974bcade]::thir::pattern::check_match::MatchVisitor>::check_let
24: 0x116ae4bc3 - rustc_middle[e34a00149b4583d7]::thir::visit::walk_block::<rustc_mir_build[f8655712974bcade]::thir::pattern::check_match::MatchVisitor>
25: 0x116ba1a9d - <rustc_mir_build[f8655712974bcade]::thir::pattern::check_match::MatchVisitor as rustc_middle[e34a00149b4583d7]::thir::visit::Visitor>::visit_expr
26: 0x116ba151c - <rustc_mir_build[f8655712974bcade]::thir::pattern::check_match::MatchVisitor as rustc_middle[e34a00149b4583d7]::thir::visit::Visitor>::visit_expr
27: 0x116b6da69 - rustc_mir_build[f8655712974bcade]::thir::pattern::check_match::check_match
28: 0x11736aeba - rustc_query_impl[1cf588037da06ac4]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[1cf588037da06ac4]::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e34a00149b4583d7]::query::erase::Erased<[u8; 1usize]>>
29: 0x1171f1afc - rustc_query_system[98688be416762701]::query::plumbing::try_execute_query::<rustc_query_impl[1cf588037da06ac4]::DynamicConfig<rustc_query_system[98688be416762701]::query::caches::VecCache<rustc_span[708ae0672d259dca]::def_id::LocalDefId, rustc_middle[e34a00149b4583d7]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[1cf588037da06ac4]::plumbing::QueryCtxt, false>
30: 0x11739da90 - rustc_query_impl[1cf588037da06ac4]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace
31: 0x116b227d2 - rustc_mir_build[f8655712974bcade]::build::mir_build
32: 0x116dbd63f - rustc_mir_transform[f6c980be58df0e21]::mir_built
33: 0x11736fa5a - rustc_query_impl[1cf588037da06ac4]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[1cf588037da06ac4]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e34a00149b4583d7]::query::erase::Erased<[u8; 8usize]>>
34: 0x1171fa517 - rustc_query_system[98688be416762701]::query::plumbing::try_execute_query::<rustc_query_impl[1cf588037da06ac4]::DynamicConfig<rustc_query_system[98688be416762701]::query::caches::VecCache<rustc_span[708ae0672d259dca]::def_id::LocalDefId, rustc_middle[e34a00149b4583d7]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[1cf588037da06ac4]::plumbing::QueryCtxt, false>
35: 0x11738004b - rustc_query_impl[1cf588037da06ac4]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
36: 0x116b66eff - rustc_mir_build[f8655712974bcade]::check_unsafety::check_unsafety
37: 0x11736b53a - rustc_query_impl[1cf588037da06ac4]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[1cf588037da06ac4]::query_impl::check_unsafety::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e34a00149b4583d7]::query::erase::Erased<[u8; 0usize]>>
38: 0x1171eaacb - rustc_query_system[98688be416762701]::query::plumbing::try_execute_query::<rustc_query_impl[1cf588037da06ac4]::DynamicConfig<rustc_query_system[98688be416762701]::query::caches::VecCache<rustc_span[708ae0672d259dca]::def_id::LocalDefId, rustc_middle[e34a00149b4583d7]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[1cf588037da06ac4]::plumbing::QueryCtxt, false>
39: 0x11738e830 - rustc_query_impl[1cf588037da06ac4]::query_impl::check_unsafety::get_query_non_incr::__rust_end_short_backtrace
40: 0x116684db2 - <rustc_middle[e34a00149b4583d7]::hir::map::Map>::par_body_owners::<rustc_interface[2cf32266391f9a3e]::passes::run_required_analyses::{closure#1}::{closure#0}>::{closure#0}
41: 0x1166d728c - rustc_interface[2cf32266391f9a3e]::passes::run_required_analyses
42: 0x1166d9770 - rustc_interface[2cf32266391f9a3e]::passes::analysis
43: 0x11736f74a - rustc_query_impl[1cf588037da06ac4]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[1cf588037da06ac4]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e34a00149b4583d7]::query::erase::Erased<[u8; 1usize]>>
44: 0x11715141e - rustc_query_system[98688be416762701]::query::plumbing::try_execute_query::<rustc_query_impl[1cf588037da06ac4]::DynamicConfig<rustc_query_system[98688be416762701]::query::caches::SingleCache<rustc_middle[e34a00149b4583d7]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[1cf588037da06ac4]::plumbing::QueryCtxt, false>
45: 0x117379b17 - rustc_query_impl[1cf588037da06ac4]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
46: 0x115eca3a7 - <rustc_interface[2cf32266391f9a3e]::queries::QueryResult<&rustc_middle[e34a00149b4583d7]::ty::context::GlobalCtxt>>::enter::<core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>, rustc_driver_impl[a82bc910fff4ad06]::run_compiler::{closure#0}::{closure#1}::{closure#3}>
47: 0x115f1bbdf - rustc_interface[2cf32266391f9a3e]::interface::run_compiler::<core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>, rustc_driver_impl[a82bc910fff4ad06]::run_compiler::{closure#0}>::{closure#0}
48: 0x115f0bdad - std[28e242a172f62cc5]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[2cf32266391f9a3e]::util::run_in_thread_with_globals<rustc_interface[2cf32266391f9a3e]::util::run_in_thread_pool_with_globals<rustc_interface[2cf32266391f9a3e]::interface::run_compiler<core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>, rustc_driver_impl[a82bc910fff4ad06]::run_compiler::{closure#0}>::{closure#0}, core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>>::{closure#0}, core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>>
49: 0x115f254d6 - <<std[28e242a172f62cc5]::thread::Builder>::spawn_unchecked_<rustc_interface[2cf32266391f9a3e]::util::run_in_thread_with_globals<rustc_interface[2cf32266391f9a3e]::util::run_in_thread_pool_with_globals<rustc_interface[2cf32266391f9a3e]::interface::run_compiler<core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>, rustc_driver_impl[a82bc910fff4ad06]::run_compiler::{closure#0}>::{closure#0}, core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>>::{closure#0}, core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[5d06e84208279116]::result::Result<(), rustc_span[708ae0672d259dca]::ErrorGuaranteed>>::{closure#2} as core[5d06e84208279116]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
50: 0x10d2b895b - std::sys::pal::unix::thread::Thread::new::thread_start::h46ddcf9131ad2508
51: 0x7ff818270202 - __pthread_start
query stack during panic:
#0 [check_match] match-checking `<impl at ./42014B0E5BEE51773962BDC66C19A687BF2BCA268F20494CFBF764F616612328.rs:7:1: 7:17>::deref`
#1 [mir_built] building MIR for `<impl at ./42014B0E5BEE51773962BDC66C19A687BF2BCA268F20494CFBF764F616612328.rs:7:1: 7:17>::deref`
#2 [check_unsafety] unsafety-checking `<impl at ./42014B0E5BEE51773962BDC66C19A687BF2BCA268F20494CFBF764F616612328.rs:7:1: 7:17>::deref`
#3 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0261`.
Code
(reduced)
(original)
Meta
rustc --version --verbose:Error output
Backtrace