stack backtrace:
0: _rust_begin_unwind
1: core::panicking::panic_fmt
2: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::consts::Const>, rustc_middle::ty::consts::Const>
3: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::ParamEnvAnd<rustc_middle::ty::consts::Const>, rustc_middle::ty::consts::Const>>
4: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::deref_const, rustc_query_impl::plumbing::QueryCtxt>
5: <rustc_mir_build::thir::pattern::const_to_pat::ConstToPat>::recur
6: <core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>> as core::iter::traits::iterator::Iterator>::try_fold::<(), <core::iter::adapters::enumerate::Enumerate<_> as core::iter::traits::iterator::Iterator>::try_fold::enumerate<rustc_middle::ty::consts::Const, (), core::ops::control_flow::ControlFlow<core::ops::control_flow::ControlFlow<rustc_middle::thir::FieldPat>>, core::iter::adapters::map::map_try_fold<(usize, rustc_middle::ty::consts::Const), core::result::Result<rustc_middle::thir::FieldPat, rustc_mir_build::thir::pattern::const_to_pat::fallback_to_const_ref::FallbackToConstRef>, (), core::ops::control_flow::ControlFlow<core::ops::control_flow::ControlFlow<rustc_middle::thir::FieldPat>>, <rustc_mir_build::thir::pattern::const_to_pat::ConstToPat>::field_pats<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>::{closure#0}, <core::iter::adapters::GenericShunt<core::iter::adapters::map::Map<core::iter::adapters::enumerate::Enumerate<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>, <rustc_mir_build::thir::pattern::const_to_pat::ConstToPat>::field_pats<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>::{closure#0}>, core::result::Result<core::convert::Infallible, rustc_mir_build::thir::pattern::const_to_pat::fallback_to_const_ref::FallbackToConstRef>> as core::iter::traits::iterator::Iterator>::try_fold<(), core::iter::traits::iterator::Iterator::try_for_each::call<rustc_middle::thir::FieldPat, core::ops::control_flow::ControlFlow<rustc_middle::thir::FieldPat>, core::ops::control_flow::ControlFlow<rustc_middle::thir::FieldPat>::Break>::{closure#0}, core::ops::control_flow::ControlFlow<rustc_middle::thir::FieldPat>>::{closure#0}>::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow<core::ops::control_flow::ControlFlow<rustc_middle::thir::FieldPat>>>
7: <alloc::vec::Vec<rustc_middle::thir::FieldPat> as alloc::vec::spec_from_iter::SpecFromIter<rustc_middle::thir::FieldPat, core::iter::adapters::GenericShunt<core::iter::adapters::map::Map<core::iter::adapters::enumerate::Enumerate<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>, <rustc_mir_build::thir::pattern::const_to_pat::ConstToPat>::field_pats<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>::{closure#0}>, core::result::Result<core::convert::Infallible, rustc_mir_build::thir::pattern::const_to_pat::fallback_to_const_ref::FallbackToConstRef>>>>::from_iter
8: core::iter::adapters::try_process::<core::iter::adapters::map::Map<core::iter::adapters::enumerate::Enumerate<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>, <rustc_mir_build::thir::pattern::const_to_pat::ConstToPat>::field_pats<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>::{closure#0}>, rustc_middle::thir::FieldPat, core::result::Result<core::convert::Infallible, rustc_mir_build::thir::pattern::const_to_pat::fallback_to_const_ref::FallbackToConstRef>, <core::result::Result<alloc::vec::Vec<rustc_middle::thir::FieldPat>, rustc_mir_build::thir::pattern::const_to_pat::fallback_to_const_ref::FallbackToConstRef> as core::iter::traits::collect::FromIterator<core::result::Result<rustc_middle::thir::FieldPat, rustc_mir_build::thir::pattern::const_to_pat::fallback_to_const_ref::FallbackToConstRef>>>::from_iter<core::iter::adapters::map::Map<core::iter::adapters::enumerate::Enumerate<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>, <rustc_mir_build::thir::pattern::const_to_pat::ConstToPat>::field_pats<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::consts::Const>>>::{closure#0}>>::{closure#0}, alloc::vec::Vec<rustc_middle::thir::FieldPat>>
9: <rustc_mir_build::thir::pattern::const_to_pat::ConstToPat>::recur
10: <rustc_mir_build::thir::pattern::const_to_pat::ConstToPat>::to_pat
11: <rustc_infer::infer::InferCtxtBuilder>::enter::<rustc_middle::thir::Pat, <rustc_mir_build::thir::pattern::PatCtxt>::const_to_pat::{closure#0}>
12: <rustc_mir_build::thir::pattern::PatCtxt>::const_to_pat
13: <rustc_mir_build::thir::pattern::PatCtxt>::lower_path
14: <rustc_mir_build::thir::pattern::PatCtxt>::lower_pattern
15: rustc_mir_build::thir::pattern::pat_from_hir
16: <rustc_mir_build::thir::cx::Cx>::convert_arm
17: <alloc::vec::Vec<rustc_middle::thir::ArmId> as alloc::vec::spec_from_iter::SpecFromIter<rustc_middle::thir::ArmId, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_hir::hir::Arm>, <rustc_mir_build::thir::cx::Cx>::make_mirror_unadjusted::{closure#11}>>>::from_iter
18: <rustc_mir_build::thir::cx::Cx>::make_mirror_unadjusted
19: <rustc_mir_build::thir::cx::Cx>::mirror_expr_inner
20: <rustc_mir_build::thir::cx::Cx>::mirror_block
21: <rustc_mir_build::thir::cx::Cx>::make_mirror_unadjusted
22: <rustc_mir_build::thir::cx::Cx>::mirror_expr_inner
23: <rustc_mir_build::thir::cx::Cx>::make_mirror_unadjusted
24: <rustc_mir_build::thir::cx::Cx>::mirror_expr_inner
25: <rustc_mir_build::thir::cx::Cx>::mirror_block
26: <rustc_mir_build::thir::cx::Cx>::make_mirror_unadjusted
27: <rustc_mir_build::thir::cx::Cx>::mirror_expr_inner
28: <rustc_mir_build::thir::cx::Cx>::make_mirror_unadjusted
29: <rustc_mir_build::thir::cx::Cx>::mirror_expr_inner
30: <rustc_mir_build::thir::cx::Cx>::mirror_block
31: <rustc_mir_build::thir::cx::Cx>::make_mirror_unadjusted
32: <rustc_mir_build::thir::cx::Cx>::mirror_expr_inner
33: rustc_mir_build::thir::cx::thir_body
34: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, core::result::Result<(&rustc_data_structures::steal::Steal<rustc_middle::thir::Thir>, rustc_middle::thir::ExprId), rustc_errors::ErrorGuaranteed>>::{closure#0}, core::result::Result<(&rustc_data_structures::steal::Steal<rustc_middle::thir::Thir>, rustc_middle::thir::ExprId), rustc_errors::ErrorGuaranteed>>
35: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, core::result::Result<(&rustc_data_structures::steal::Steal<rustc_middle::thir::Thir>, rustc_middle::thir::ExprId), rustc_errors::ErrorGuaranteed>>
36: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::thir_body, rustc_query_impl::plumbing::QueryCtxt>
37: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::thir_body
38: <rustc_infer::infer::InferCtxtBuilder>::enter::<rustc_middle::mir::Body, rustc_mir_build::build::mir_build::{closure#1}>
39: rustc_mir_build::build::mir_built
40: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, &rustc_data_structures::steal::Steal<rustc_middle::mir::Body>>::{closure#0}, &rustc_data_structures::steal::Steal<rustc_middle::mir::Body>>
41: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, &rustc_data_structures::steal::Steal<rustc_middle::mir::Body>>
42: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, &rustc_data_structures::steal::Steal<rustc_middle::mir::Body>>>
43: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::mir_built, rustc_query_impl::plumbing::QueryCtxt>
44: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_built
45: rustc_mir_transform::check_unsafety::unsafety_check_result
46: <rustc_mir_transform::check_unsafety::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
47: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::UnsafetyCheckResult>
48: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::UnsafetyCheckResult>>
49: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::unsafety_check_result, rustc_query_impl::plumbing::QueryCtxt>
50: <rustc_mir_transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_rvalue
51: rustc_mir_transform::check_unsafety::unsafety_check_result
52: <rustc_mir_transform::check_unsafety::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
53: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::UnsafetyCheckResult>
54: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::UnsafetyCheckResult>>
55: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::unsafety_check_result, rustc_query_impl::plumbing::QueryCtxt>
56: rustc_mir_transform::mir_const
57: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, &rustc_data_structures::steal::Steal<rustc_middle::mir::Body>>::{closure#0}, &rustc_data_structures::steal::Steal<rustc_middle::mir::Body>>
58: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, &rustc_data_structures::steal::Steal<rustc_middle::mir::Body>>
59: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, &rustc_data_structures::steal::Steal<rustc_middle::mir::Body>>>
60: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::mir_const, rustc_query_impl::plumbing::QueryCtxt>
61: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_const
62: rustc_mir_transform::mir_promoted
63: <rustc_middle::dep_graph::dep_node::DepKind as rustc_query_system::dep_graph::DepKind>::with_deps::<<rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task_impl<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, (&rustc_data_structures::steal::Steal<rustc_middle::mir::Body>, &rustc_data_structures::steal::Steal<rustc_index::vec::IndexVec<rustc_middle::mir::Promoted, rustc_middle::mir::Body>>)>::{closure#0}, (&rustc_data_structures::steal::Steal<rustc_middle::mir::Body>, &rustc_data_structures::steal::Steal<rustc_index::vec::IndexVec<rustc_middle::mir::Promoted, rustc_middle::mir::Body>>)>
64: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::WithOptConstParam<rustc_span::def_id::LocalDefId>, (&rustc_data_structures::steal::Steal<rustc_middle::mir::Body>, &rustc_data_structures::steal::Steal<rustc_index::vec::IndexVec<rustc_middle::mir::Promoted, rustc_middle::mir::Body>>)>
65: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::mir_promoted, rustc_query_impl::plumbing::QueryCtxt>
66: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_promoted
67: rustc_borrowck::mir_borrowck
68: <rustc_borrowck::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>>::call_once
69: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>
70: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalDefId, &rustc_middle::mir::query::BorrowCheckResult>>
71: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::mir_borrowck, rustc_query_impl::plumbing::QueryCtxt>
72: rustc_typeck::collect::type_of::type_of
73: <rustc_query_system::dep_graph::graph::DepGraph<rustc_middle::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle::ty::context::TyCtxt, rustc_span::def_id::DefId, rustc_middle::ty::Ty>
74: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::plumbing::QueryCtxt, rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::ty::Ty>>
75: rustc_query_system::query::plumbing::get_query::<rustc_query_impl::queries::type_of, rustc_query_impl::plumbing::QueryCtxt>
76: <rustc_trait_selection::traits::select::SelectionContext>::confirm_candidate
77: <rustc_trait_selection::traits::select::SelectionContext>::select
78: <rustc_trait_selection::traits::fulfill::FulfillProcessor>::process_trait_obligation
79: <rustc_trait_selection::traits::fulfill::FulfillProcessor>::process_changed_obligations
80: <rustc_data_structures::obligation_forest::ObligationForest<rustc_trait_selection::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection::traits::fulfill::FulfillProcessor, rustc_data_structures::obligation_forest::Outcome<rustc_trait_selection::traits::fulfill::PendingPredicateObligation, rustc_infer::traits::FulfillmentErrorCode>>
81: <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible
82: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
83: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_method_argument_types
84: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
85: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
86: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_argument_types
87: <rustc_typeck::check::fn_ctxt::FnCtxt>::confirm_builtin_call
88: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_call
89: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_kind
90: <rustc_typeck::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
91: <rustc_typeck::check::fn_ctxt::FnCtxt>::demand_scrutinee_type
Note that the below error cannot be repeated by myself anymore...I tried minimizing the bug but then it disappeared and even after reverting back to the original troublesome code cargo no longer complains.
Code
Meta
rustc --version --verbose:Error output
Backtrace