thread 'rustc' panicked at compiler/rustc_middle/src/ty/instance.rs:577:21:
Box<dyn Any>
stack backtrace:
0: std::panicking::begin_panic::<rustc_errors::ExplicitBug>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/panicking.rs:769:5
1: std::panic::panic_any::<rustc_errors::ExplicitBug>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/panic.rs:260:5
2: <rustc_errors::diagnostic::BugAbort as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
at ./compiler/rustc_errors/src/diagnostic.rs:83:9
3: <rustc_errors::diagnostic::Diag<rustc_errors::diagnostic::BugAbort>>::emit
at ./compiler/rustc_errors/src/diagnostic.rs:1422:9
4: <rustc_errors::DiagCtxtHandle>::span_bug::<rustc_span::span_encoding::Span, alloc::string::String>
at ./compiler/rustc_errors/src/lib.rs:1235:48
5: rustc_middle::util::bug::opt_span_bug_fmt::<rustc_span::span_encoding::Span>::{closure#0}
at ./compiler/rustc_middle/src/util/bug.rs:38:54
6: rustc_middle::ty::context::tls::with_opt::<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, !>::{closure#0}
at ./compiler/rustc_middle/src/ty/context/tls.rs:136:23
7: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_opt<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
at ./compiler/rustc_middle/src/ty/context/tls.rs:79:18
8: rustc_middle::ty::context::tls::with_opt::<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, !>
at ./compiler/rustc_middle/src/ty/context/tls.rs:134:5
9: rustc_middle::util::bug::opt_span_bug_fmt::<rustc_span::span_encoding::Span>
at ./compiler/rustc_middle/src/util/bug.rs:33:5
10: rustc_middle::util::bug::span_bug_fmt::<rustc_span::span_encoding::Span>
at ./compiler/rustc_middle/src/util/bug.rs:24:5
11: <rustc_middle::ty::instance::Instance>::expect_resolve
at ./compiler/rustc_middle/src/macros.rs:34:9
12: <rustc_middle::ty::instance::Instance>::resolve_drop_in_place
at ./compiler/rustc_middle/src/ty/instance.rs:735:9
13: rustc_monomorphize::collector::visit_drop_use
at ./compiler/rustc_monomorphize/src/collector.rs:895:20
14: <rustc_monomorphize::collector::MirUsedCollector as rustc_middle::mir::visit::Visitor>::visit_terminator
at ./compiler/rustc_monomorphize/src/collector.rs:826:17
15: rustc_monomorphize::collector::collect_items_of_instance
at ./compiler/rustc_monomorphize/src/collector.rs:1292:23
16: rustc_monomorphize::collector::items_of_instance
at ./compiler/rustc_monomorphize/src/collector.rs:1320:41
17: rustc_query_impl::query_impl::items_of_instance::dynamic_query::{closure#2}::{closure#0}
at ./compiler/rustc_query_impl/src/plumbing.rs:294:9
[... omitted 22 frames ...]
18: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefaultCache<(rustc_middle::ty::instance::Instance, rustc_middle::mir::mono::CollectionMode), rustc_middle::query::erase::Erased<[u8; 32]>>>
at ./compiler/rustc_middle/src/query/plumbing.rs:182:17
19: <rustc_middle::query::plumbing::TyCtxtAt>::items_of_instance
at ./compiler/rustc_middle/src/query/plumbing.rs:475:31
20: <rustc_middle::ty::context::TyCtxt>::items_of_instance
at ./compiler/rustc_middle/src/query/plumbing.rs:466:35
21: rustc_monomorphize::collector::collect_items_rec::{closure#2}
at ./compiler/rustc_monomorphize/src/collector.rs:504:45
22: stacker::maybe_grow::<(), rustc_monomorphize::collector::collect_items_rec::{closure#2}>
at /home/adwin/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-4dc01642fd091eda/stacker-0.1.21/src/lib.rs:57:9
23: rustc_data_structures::stack::ensure_sufficient_stack::<(), rustc_monomorphize::collector::collect_items_rec::{closure#2}>
at ./compiler/rustc_data_structures/src/stack.rs:21:5
24: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:503:13
25: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
26: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
27: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
28: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
29: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
30: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
31: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
32: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
33: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
34: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
35: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
36: rustc_monomorphize::collector::collect_items_rec
at ./compiler/rustc_monomorphize/src/collector.rs:604:13
37: rustc_monomorphize::collector::collect_items_root
at ./compiler/rustc_monomorphize/src/collector.rs:364:5
38: rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}
at ./compiler/rustc_monomorphize/src/collector.rs:1741:13
39: rustc_data_structures::sync::parallel::par_for_each_in::<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}::{closure#0}
at ./compiler/rustc_data_structures/src/sync/parallel.rs:181:30
40: <core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/panic/unwind_safe.rs:272:9
41: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>, ()>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/panicking.rs:589:40
42: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/panicking.rs:552:19
43: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>, ()>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/panic.rs:359:14
44: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:23:9
45: rustc_data_structures::sync::parallel::par_for_each_in::<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}
at ./compiler/rustc_data_structures/src/sync/parallel.rs:181:23
46: core::iter::traits::iterator::Iterator::for_each::call::<rustc_middle::mir::mono::MonoItem, rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}>::{closure#0}
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/iter/traits/iterator.rs:824:29
47: <alloc::vec::into_iter::IntoIter<rustc_middle::mir::mono::MonoItem> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustc_middle::mir::mono::MonoItem, rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}>::{closure#0}>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/alloc/src/vec/into_iter.rs:323:25
48: <alloc::vec::into_iter::IntoIter<rustc_middle::mir::mono::MonoItem> as core::iter::traits::iterator::Iterator>::for_each::<rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}::{closure#1}>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/iter/traits/iterator.rs:827:14
49: rustc_data_structures::sync::parallel::par_for_each_in::<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}
at ./compiler/rustc_data_structures/src/sync/parallel.rs:180:27
50: rustc_data_structures::sync::parallel::parallel_guard::<(), rustc_data_structures::sync::parallel::par_for_each_in<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>::{closure#0}>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:39:15
51: rustc_data_structures::sync::parallel::par_for_each_in::<rustc_middle::mir::mono::MonoItem, alloc::vec::Vec<rustc_middle::mir::mono::MonoItem>, rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}>
at ./compiler/rustc_data_structures/src/sync/parallel.rs:175:5
52: rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}
at ./compiler/rustc_monomorphize/src/collector.rs:1740:9
53: <rustc_data_structures::profiling::VerboseTimingGuard>::run::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}>
at ./compiler/rustc_data_structures/src/profiling.rs:844:9
54: <rustc_session::session::Session>::time::<(), rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}>
at ./compiler/rustc_session/src/utils.rs:16:50
55: rustc_monomorphize::collector::collect_crate_mono_items
at ./compiler/rustc_monomorphize/src/collector.rs:1739:14
56: rustc_monomorphize::partitioning::collect_and_partition_mono_items
at ./compiler/rustc_monomorphize/src/partitioning.rs:1131:30
57: rustc_query_impl::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2}::{closure#0}
at ./compiler/rustc_query_impl/src/plumbing.rs:294:9
[... omitted 22 frames ...]
58: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 40]>>>
at ./compiler/rustc_middle/src/query/plumbing.rs:182:17
59: <rustc_middle::query::plumbing::TyCtxtAt>::collect_and_partition_mono_items
at ./compiler/rustc_middle/src/query/plumbing.rs:475:31
60: <rustc_middle::ty::context::TyCtxt>::collect_and_partition_mono_items
at ./compiler/rustc_middle/src/query/plumbing.rs:466:35
61: rustc_codegen_ssa::base::codegen_crate::<rustc_codegen_llvm::LlvmCodegenBackend>
at ./compiler/rustc_codegen_ssa/src/base.rs:669:13
62: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate
at ./compiler/rustc_codegen_llvm/src/lib.rs:337:18
63: rustc_interface::passes::start_codegen::{closure#0}
at ./compiler/rustc_interface/src/passes.rs:1225:74
64: <rustc_data_structures::profiling::VerboseTimingGuard>::run::<alloc::boxed::Box<dyn core::any::Any>, rustc_interface::passes::start_codegen::{closure#0}>
at ./compiler/rustc_data_structures/src/profiling.rs:844:9
65: <rustc_session::session::Session>::time::<alloc::boxed::Box<dyn core::any::Any>, rustc_interface::passes::start_codegen::{closure#0}>
at ./compiler/rustc_session/src/utils.rs:16:50
66: rustc_interface::passes::start_codegen
at ./compiler/rustc_interface/src/passes.rs:1225:28
67: <rustc_interface::queries::Linker>::codegen_and_build_linker
at ./compiler/rustc_interface/src/queries.rs:32:43
68: rustc_driver_impl::run_compiler::{closure#0}::{closure#2}
at ./compiler/rustc_driver_impl/src/lib.rs:386:18
69: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
at ./compiler/rustc_interface/src/passes.rs:1006:27
70: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}
at ./compiler/rustc_middle/src/ty/context.rs:1546:37
71: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}
at ./compiler/rustc_middle/src/ty/context/tls.rs:60:9
72: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::try_with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/thread/local.rs:315:12
73: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/thread/local.rs:279:20
74: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>
at ./compiler/rustc_middle/src/ty/context/tls.rs:57:9
75: <rustc_middle::ty::context::GlobalCtxt>::enter::<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
at ./compiler/rustc_middle/src/ty/context.rs:1546:9
76: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
at ./compiler/rustc_middle/src/ty/context.rs:1751:13
77: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}
at ./compiler/rustc_interface/src/passes.rs:973:9
78: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/ops/function.rs:253:5
79: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/alloc/src/boxed.rs:1971:9
80: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
at ./compiler/rustc_interface/src/passes.rs:1014:5
81: rustc_driver_impl::run_compiler::{closure#0}
at ./compiler/rustc_driver_impl/src/lib.rs:343:22
82: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}
at ./compiler/rustc_interface/src/interface.rs:525:80
83: <core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/core/src/panic/unwind_safe.rs:272:9
84: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>, ()>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/panicking.rs:589:40
85: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/panicking.rs:552:19
86: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>, ()>
at /rustc/788da80fcfcef3f34c90def5baa32813e39a1a41/library/std/src/panic.rs:359:14
87: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}
at ./compiler/rustc_interface/src/interface.rs:525:23
88: rustc_interface::util::run_in_thread_pool_with_globals::<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}
at ./compiler/rustc_interface/src/util.rs:199:17
89: rustc_interface::util::run_in_thread_with_globals::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}
at ./compiler/rustc_interface/src/util.rs:153:24
90: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
at /home/adwin/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-4dc01642fd091eda/scoped-tls-1.0.1/src/lib.rs:137:9
91: rustc_span::create_session_globals_then::<(), rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
at ./compiler/rustc_span/src/lib.rs:146:21
92: rustc_interface::util::run_in_thread_with_globals::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}
at ./compiler/rustc_interface/src/util.rs:149:17
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
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: rustc 1.91.0-dev running on x86_64-unknown-linux-gnu
note: compiler flags: -Z next-solver
query stack during panic:
#0 [items_of_instance] collecting items used by `core::ptr::drop_in_place::<S<S<S<S<S<S<S<S<S<S<S<S<S<S<S<S<S<S<A>>>>>>>>>>>>>>>>>>> - shim(Some(S<S<S<S<S<S<S<S<S<S<S<S<S<S<S<S<S<S<A>>>>>>>>>>>>>>>>>>))`
#1 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
As pointed out in the comment, my overflow check doesn't cover fields of types and probably other cases.
An improved solution needs to consider these missing cases while keeping the cost of check low.
This only causes ICE with
Znext-solver, likely because the old solver can sometimes ignore the recursion limit.Code
Meta
rustc --version --verbose:Error output
Backtrace