Skip to content

cannot unwind from goto -> bb118 and from goto -> bb677 #134566

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
clin1234 opened this issue Dec 20, 2024 · 4 comments · Fixed by #134575
Closed

cannot unwind from goto -> bb118 and from goto -> bb677 #134566

clin1234 opened this issue Dec 20, 2024 · 4 comments · Fixed by #134575
Assignees
Labels
C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@clin1234
Copy link

clin1234 commented Dec 20, 2024

Code

<code>

Invoked via (venv) cc@pretty:~$ CARGO_TARGET_DIR=/tmp/cargo-instally1Ils1 cargo install --features sqlite --git https://github.com/dani-garcia/vaultwarden

Meta

rustc --version --verbose:

<version>
rustc 1.85.0-nightly (9e136a30a 2024-12-19)
binary: rustc
commit-hash: 9e136a30a965bf4e63f03095c57df7257bf96fd6
commit-date: 2024-12-19
host: x86_64-unknown-linux-gnu
release: 1.85.0-nightly
LLVM version: 19.1.6

Error output

<output>

error: internal compiler error: compiler/rustc_mir_build/src/builder/scope.rs:1724:17: cannot unwind from goto -> bb118
error: internal compiler error: compiler/rustc_mir_build/src/builder/scope.rs:1724:17: cannot unwind from goto -> bb677

Backtrace

<backtrace>
thread 'rustc' panicked at compiler/rustc_mir_build/src/builder/scope.rs:1724:17:
Box<dyn Any>
stack backtrace:
   0:     0x7f0231550325 - std::backtrace::Backtrace::create::hb67bbbe26a0d3896
   1:     0x7f022fb6dcf5 - std::backtrace::Backtrace::force_capture::h04d7ae1c482d3231
   2:     0x7f022ecf7ece - std[19739dcbdd52d894]::panicking::update_hook::<alloc[d24e20bba6540ab9]::boxed::Box<rustc_driver_impl[3177e72804664110]::install_ice_hook::{closure#0}>>::{closure#0}
   3:     0x7f022fb85c68 - std::panicking::rust_panic_with_hook::hd21771b96ea64164
   4:     0x7f022ed322d1 - std[19739dcbdd52d894]::panicking::begin_panic::<rustc_errors[37abd7aad4ad5df0]::ExplicitBug>::{closure#0}
   5:     0x7f022ed274b6 - std[19739dcbdd52d894]::sys::backtrace::__rust_end_short_backtrace::<std[19739dcbdd52d894]::panicking::begin_panic<rustc_errors[37abd7aad4ad5df0]::ExplicitBug>::{closure#0}, !>
   6:     0x7f022ed23ec9 - std[19739dcbdd52d894]::panicking::begin_panic::<rustc_errors[37abd7aad4ad5df0]::ExplicitBug>
   7:     0x7f022ed3c231 - <rustc_errors[37abd7aad4ad5df0]::diagnostic::BugAbort as rustc_errors[37abd7aad4ad5df0]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
   8:     0x7f022f28b76c - <rustc_errors[37abd7aad4ad5df0]::DiagCtxtHandle>::span_bug::<rustc_span[2a960e124d280c12]::span_encoding::Span, alloc[d24e20bba6540ab9]::string::String>
   9:     0x7f022f310fe7 - rustc_middle[a45f2c6e02975f4b]::util::bug::opt_span_bug_fmt::<rustc_span[2a960e124d280c12]::span_encoding::Span>::{closure#0}
  10:     0x7f022f2f67ba - rustc_middle[a45f2c6e02975f4b]::ty::context::tls::with_opt::<rustc_middle[a45f2c6e02975f4b]::util::bug::opt_span_bug_fmt<rustc_span[2a960e124d280c12]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  11:     0x7f022f2f664b - rustc_middle[a45f2c6e02975f4b]::ty::context::tls::with_context_opt::<rustc_middle[a45f2c6e02975f4b]::ty::context::tls::with_opt<rustc_middle[a45f2c6e02975f4b]::util::bug::opt_span_bug_fmt<rustc_span[2a960e124d280c12]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  12:     0x7f022d72b477 - rustc_middle[a45f2c6e02975f4b]::util::bug::span_bug_fmt::<rustc_span[2a960e124d280c12]::span_encoding::Span>
  13:     0x7f0230bed5ef - <rustc_mir_build[e05bc5701fd211e7]::builder::Builder>::build_unwind_tree
  14:     0x7f0230be8a55 - rustc_mir_build[e05bc5701fd211e7]::builder::mir_build
  15:     0x7f0230207714 - rustc_mir_transform[e79b9bef93d6360b]::mir_built
  16:     0x7f02302076d7 - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  17:     0x7f0230494b91 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  18:     0x7f023049474d - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  19:     0x7f0230247feb - rustc_mir_transform[e79b9bef93d6360b]::ffi_unwind_calls::has_ffi_unwind_calls
  20:     0x7f0230247aad - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>>
  21:     0x7f0230bdf607 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  22:     0x7f0230bdf149 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::has_ffi_unwind_calls::get_query_non_incr::__rust_end_short_backtrace
  23:     0x7f022d9b61cc - rustc_mir_transform[e79b9bef93d6360b]::mir_promoted
  24:     0x7f0230788bd4 - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 16usize]>>
  25:     0x7f0230788ea8 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  26:     0x7f0230788ada - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  27:     0x7f02312cd22d - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  28:     0x7f0230494b91 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  29:     0x7f0230494695 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  30:     0x7f0230dab24a - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_get_at::<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>>
  31:     0x7f0230dab2a6 - <rustc_borrowck[cd77aeed0ee0a7cb]::type_check::TypeChecker>::prove_closure_bounds
  32:     0x7f02305e8960 - <rustc_borrowck[cd77aeed0ee0a7cb]::type_check::TypeChecker>::typeck_mir
  33:     0x7f023135705e - rustc_borrowck[cd77aeed0ee0a7cb]::type_check::type_check
  34:     0x7f0230278a9c - rustc_borrowck[cd77aeed0ee0a7cb]::nll::compute_regions
  35:     0x7f02312daae6 - rustc_borrowck[cd77aeed0ee0a7cb]::do_mir_borrowck
  36:     0x7f02312cd2ea - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  37:     0x7f0230494b91 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  38:     0x7f0230494695 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  39:     0x7f0230b08290 - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_get_at::<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>>
  40:     0x7f023115711e - rustc_hir_analysis[f04f71a4747ef8cb]::collect::type_of::type_of_opaque
  41:     0x7f0231156f91 - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  42:     0x7f0230303fdf - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_query_system[1e197417f2882beb]::query::caches::DefIdCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  43:     0x7f0231427f75 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
  44:     0x7f0230b82164 - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_get_at::<rustc_query_system[1e197417f2882beb]::query::caches::DefIdCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>>
  45:     0x7f023030a4dd - rustc_hir_analysis[f04f71a4747ef8cb]::collect::type_of::type_of
  46:     0x7f023030523c - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  47:     0x7f0230303fdf - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_query_system[1e197417f2882beb]::query::caches::DefIdCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  48:     0x7f0230303b6b - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  49:     0x7f0230b82164 - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_get_at::<rustc_query_system[1e197417f2882beb]::query::caches::DefIdCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>>
  50:     0x7f022c7babc2 - rustc_hir_analysis[f04f71a4747ef8cb]::check::check::check_item_type
  51:     0x7f022ddd367e - rustc_hir_analysis[f04f71a4747ef8cb]::check::wfcheck::check_well_formed
  52:     0x7f0230bdfe3b - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>>
  53:     0x7f0230bdf8e9 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  54:     0x7f0230bdf350 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  55:     0x7f0230bdfeab - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_ensure_error_guaranteed::<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, ()>
  56:     0x7f0230be039b - rustc_hir_analysis[f04f71a4747ef8cb]::check::wfcheck::check_mod_type_wf
  57:     0x7f0230bdfecb - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>>
  58:     0x7f0230f60004 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_query_system[1e197417f2882beb]::query::caches::DefaultCache<rustc_span[2a960e124d280c12]::def_id::LocalModDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  59:     0x7f0230f5fd98 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
  60:     0x7f023049175c - rustc_hir_analysis[f04f71a4747ef8cb]::check_crate
  61:     0x7f023065a07c - rustc_interface[dfcc7ff3f03a05db]::passes::run_required_analyses
  62:     0x7f0231146c5e - rustc_interface[dfcc7ff3f03a05db]::passes::analysis
  63:     0x7f0231146c2f - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 0usize]>>
  64:     0x7f02311a9c55 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_query_system[1e197417f2882beb]::query::caches::SingleCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  65:     0x7f02311a998e - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  66:     0x7f023119ed9e - rustc_interface[dfcc7ff3f03a05db]::passes::create_and_enter_global_ctxt::<core[57d68807791337c0]::option::Option<rustc_interface[dfcc7ff3f03a05db]::queries::Linker>, rustc_driver_impl[3177e72804664110]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
  67:     0x7f0231210c43 - rustc_interface[dfcc7ff3f03a05db]::interface::run_compiler::<(), rustc_driver_impl[3177e72804664110]::run_compiler::{closure#0}>::{closure#1}
  68:     0x7f02311f7711 - std[19739dcbdd52d894]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[dfcc7ff3f03a05db]::util::run_in_thread_with_globals<rustc_interface[dfcc7ff3f03a05db]::util::run_in_thread_pool_with_globals<rustc_interface[dfcc7ff3f03a05db]::interface::run_compiler<(), rustc_driver_impl[3177e72804664110]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  69:     0x7f02311f7ba6 - <<std[19739dcbdd52d894]::thread::Builder>::spawn_unchecked_<rustc_interface[dfcc7ff3f03a05db]::util::run_in_thread_with_globals<rustc_interface[dfcc7ff3f03a05db]::util::run_in_thread_pool_with_globals<rustc_interface[dfcc7ff3f03a05db]::interface::run_compiler<(), rustc_driver_impl[3177e72804664110]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[57d68807791337c0]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  70:     0x7f02311f916f - std::sys::pal::unix::thread::Thread::new::thread_start::h71fe57097907b3f8
  71:     0x7f022b47ecb8 - start_thread
  72:     0x7f022b501f5c - __GI___clone3
  73:                0x0 - <unknown>


rustc version: 1.85.0-nightly (9e136a30a 2024-12-19)
platform: x86_64-unknown-linux-gnu

query stack during panic:
#0 [mir_built] building MIR for `api::admin::get_json_api::{closure#0}`
#1 [has_ffi_unwind_calls] checking if `api::admin::get_json_api::{closure#0}` contains FFI-unwind calls
#2 [mir_promoted] promoting constants in MIR for `api::admin::get_json_api::{closure#0}`
#3 [mir_borrowck] borrow-checking `api::admin::get_json_api::{closure#0}`
#4 [mir_borrowck] borrow-checking `api::admin::get_json_api`
#5 [type_of_opaque] computing type of opaque `api::admin::get_json_api::{opaque#0}`
#6 [type_of] computing type of `api::admin::get_json_api::{opaque#0}`
#7 [check_well_formed] checking that `api::admin::get_json_api::{opaque#0}` is well-formed
#8 [check_mod_type_wf] checking that types are well-formed in module `api::admin`
#9 [analysis] running analysis passes on this crate
end of query stack
thread 'rustc' panicked at compiler/rustc_mir_build/src/builder/scope.rs:1724:17:
Box<dyn Any>
stack backtrace:
   0:     0x7f0231550325 - std::backtrace::Backtrace::create::hb67bbbe26a0d3896
   1:     0x7f022fb6dcf5 - std::backtrace::Backtrace::force_capture::h04d7ae1c482d3231
   2:     0x7f022ecf7ece - std[19739dcbdd52d894]::panicking::update_hook::<alloc[d24e20bba6540ab9]::boxed::Box<rustc_driver_impl[3177e72804664110]::install_ice_hook::{closure#0}>>::{closure#0}
   3:     0x7f022fb85c68 - std::panicking::rust_panic_with_hook::hd21771b96ea64164
   4:     0x7f022ed322d1 - std[19739dcbdd52d894]::panicking::begin_panic::<rustc_errors[37abd7aad4ad5df0]::ExplicitBug>::{closure#0}
   5:     0x7f022ed274b6 - std[19739dcbdd52d894]::sys::backtrace::__rust_end_short_backtrace::<std[19739dcbdd52d894]::panicking::begin_panic<rustc_errors[37abd7aad4ad5df0]::ExplicitBug>::{closure#0}, !>
   6:     0x7f022ed23ec9 - std[19739dcbdd52d894]::panicking::begin_panic::<rustc_errors[37abd7aad4ad5df0]::ExplicitBug>
   7:     0x7f022ed3c231 - <rustc_errors[37abd7aad4ad5df0]::diagnostic::BugAbort as rustc_errors[37abd7aad4ad5df0]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
   8:     0x7f022f28b76c - <rustc_errors[37abd7aad4ad5df0]::DiagCtxtHandle>::span_bug::<rustc_span[2a960e124d280c12]::span_encoding::Span, alloc[d24e20bba6540ab9]::string::String>
   9:     0x7f022f310fe7 - rustc_middle[a45f2c6e02975f4b]::util::bug::opt_span_bug_fmt::<rustc_span[2a960e124d280c12]::span_encoding::Span>::{closure#0}
  10:     0x7f022f2f67ba - rustc_middle[a45f2c6e02975f4b]::ty::context::tls::with_opt::<rustc_middle[a45f2c6e02975f4b]::util::bug::opt_span_bug_fmt<rustc_span[2a960e124d280c12]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  11:     0x7f022f2f664b - rustc_middle[a45f2c6e02975f4b]::ty::context::tls::with_context_opt::<rustc_middle[a45f2c6e02975f4b]::ty::context::tls::with_opt<rustc_middle[a45f2c6e02975f4b]::util::bug::opt_span_bug_fmt<rustc_span[2a960e124d280c12]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  12:     0x7f022d72b477 - rustc_middle[a45f2c6e02975f4b]::util::bug::span_bug_fmt::<rustc_span[2a960e124d280c12]::span_encoding::Span>
  13:     0x7f0230bed5ef - <rustc_mir_build[e05bc5701fd211e7]::builder::Builder>::build_unwind_tree
  14:     0x7f0230be8a55 - rustc_mir_build[e05bc5701fd211e7]::builder::mir_build
  15:     0x7f0230207714 - rustc_mir_transform[e79b9bef93d6360b]::mir_built
  16:     0x7f02302076d7 - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  17:     0x7f0230494b91 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  18:     0x7f023049474d - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  19:     0x7f0230247feb - rustc_mir_transform[e79b9bef93d6360b]::ffi_unwind_calls::has_ffi_unwind_calls
  20:     0x7f0230247aad - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>>
  21:     0x7f0230bdf607 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  22:     0x7f0230bdf149 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::has_ffi_unwind_calls::get_query_non_incr::__rust_end_short_backtrace
  23:     0x7f022d9b61cc - rustc_mir_transform[e79b9bef93d6360b]::mir_promoted
  24:     0x7f0230788bd4 - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 16usize]>>
  25:     0x7f0230788ea8 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  26:     0x7f0230788ada - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  27:     0x7f02312cd22d - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  28:     0x7f0230494b91 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  29:     0x7f0230494695 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  30:     0x7f0230dab24a - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_get_at::<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>>
  31:     0x7f0230dab2a6 - <rustc_borrowck[cd77aeed0ee0a7cb]::type_check::TypeChecker>::prove_closure_bounds
  32:     0x7f02305e8960 - <rustc_borrowck[cd77aeed0ee0a7cb]::type_check::TypeChecker>::typeck_mir
  33:     0x7f023135705e - rustc_borrowck[cd77aeed0ee0a7cb]::type_check::type_check
  34:     0x7f0230278a9c - rustc_borrowck[cd77aeed0ee0a7cb]::nll::compute_regions
  35:     0x7f02312daae6 - rustc_borrowck[cd77aeed0ee0a7cb]::do_mir_borrowck
  36:     0x7f02312cd2ea - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  37:     0x7f0230494b91 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  38:     0x7f0230494695 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  39:     0x7f0230b08290 - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_get_at::<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>>
  40:     0x7f023115711e - rustc_hir_analysis[f04f71a4747ef8cb]::collect::type_of::type_of_opaque
  41:     0x7f0231156f91 - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  42:     0x7f0230303fdf - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_query_system[1e197417f2882beb]::query::caches::DefIdCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  43:     0x7f0231427f75 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
  44:     0x7f0230b82164 - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_get_at::<rustc_query_system[1e197417f2882beb]::query::caches::DefIdCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>>
  45:     0x7f023030a4dd - rustc_hir_analysis[f04f71a4747ef8cb]::collect::type_of::type_of
  46:     0x7f023030523c - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>
  47:     0x7f0230303fdf - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_query_system[1e197417f2882beb]::query::caches::DefIdCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  48:     0x7f0230303b6b - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  49:     0x7f02305bd8cc - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_get_at::<rustc_query_system[1e197417f2882beb]::query::caches::DefIdCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 8usize]>>>
  50:     0x7f0230e1308f - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander>::expand_opaque_ty
  51:     0x7f0230e0d93f - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander as rustc_type_ir[fa923c0d04422a38]::fold::TypeFolder<rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>>::fold_ty
  52:     0x7f0230e0dab1 - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander as rustc_type_ir[fa923c0d04422a38]::fold::TypeFolder<rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>>::fold_ty
  53:     0x7f0230e0deab - <&rustc_middle[a45f2c6e02975f4b]::ty::list::RawList<(), rustc_middle[a45f2c6e02975f4b]::ty::generic_args::GenericArg> as rustc_type_ir[fa923c0d04422a38]::fold::TypeFoldable<rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>>::try_fold_with::<rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander>
  54:     0x7f0230e0dc8a - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander as rustc_type_ir[fa923c0d04422a38]::fold::TypeFolder<rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>>::fold_ty
  55:     0x7f0230e130cf - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander>::expand_opaque_ty
  56:     0x7f0230e0d93f - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander as rustc_type_ir[fa923c0d04422a38]::fold::TypeFolder<rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>>::fold_ty
  57:     0x7f0230e0dab1 - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander as rustc_type_ir[fa923c0d04422a38]::fold::TypeFolder<rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>>::fold_ty
  58:     0x7f0230e0deab - <&rustc_middle[a45f2c6e02975f4b]::ty::list::RawList<(), rustc_middle[a45f2c6e02975f4b]::ty::generic_args::GenericArg> as rustc_type_ir[fa923c0d04422a38]::fold::TypeFoldable<rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>>::try_fold_with::<rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander>
  59:     0x7f0230e0dc8a - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander as rustc_type_ir[fa923c0d04422a38]::fold::TypeFolder<rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>>::fold_ty
  60:     0x7f0230e130cf - <rustc_middle[a45f2c6e02975f4b]::ty::util::OpaqueTypeExpander>::expand_opaque_ty
  61:     0x7f0230e12f60 - <rustc_middle[a45f2c6e02975f4b]::ty::context::TyCtxt>::try_expand_impl_trait_type
  62:     0x7f022c7babf9 - rustc_hir_analysis[f04f71a4747ef8cb]::check::check::check_item_type
  63:     0x7f022ddd367e - rustc_hir_analysis[f04f71a4747ef8cb]::check::wfcheck::check_well_formed
  64:     0x7f0230bdfe3b - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>>
  65:     0x7f0230bdf8e9 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  66:     0x7f0230bdf350 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  67:     0x7f0230bdfeab - rustc_middle[a45f2c6e02975f4b]::query::plumbing::query_ensure_error_guaranteed::<rustc_data_structures[192c71b2dc5f58e0]::vec_cache::VecCache<rustc_span[2a960e124d280c12]::def_id::LocalDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[1e197417f2882beb]::dep_graph::graph::DepNodeIndex>, ()>
  68:     0x7f0230be039b - rustc_hir_analysis[f04f71a4747ef8cb]::check::wfcheck::check_mod_type_wf
  69:     0x7f0230bdfecb - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>>
  70:     0x7f0230f60004 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_query_system[1e197417f2882beb]::query::caches::DefaultCache<rustc_span[2a960e124d280c12]::def_id::LocalModDefId, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  71:     0x7f0230f5fd98 - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
  72:     0x7f023049175c - rustc_hir_analysis[f04f71a4747ef8cb]::check_crate
  73:     0x7f023065a07c - rustc_interface[dfcc7ff3f03a05db]::passes::run_required_analyses
  74:     0x7f0231146c5e - rustc_interface[dfcc7ff3f03a05db]::passes::analysis
  75:     0x7f0231146c2f - rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 0usize]>>
  76:     0x7f02311a9c55 - rustc_query_system[1e197417f2882beb]::query::plumbing::try_execute_query::<rustc_query_impl[7b0f6e1e4ae2319d]::DynamicConfig<rustc_query_system[1e197417f2882beb]::query::caches::SingleCache<rustc_middle[a45f2c6e02975f4b]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[7b0f6e1e4ae2319d]::plumbing::QueryCtxt, false>
  77:     0x7f02311a998e - rustc_query_impl[7b0f6e1e4ae2319d]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  78:     0x7f023119ed9e - rustc_interface[dfcc7ff3f03a05db]::passes::create_and_enter_global_ctxt::<core[57d68807791337c0]::option::Option<rustc_interface[dfcc7ff3f03a05db]::queries::Linker>, rustc_driver_impl[3177e72804664110]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
  79:     0x7f0231210c43 - rustc_interface[dfcc7ff3f03a05db]::interface::run_compiler::<(), rustc_driver_impl[3177e72804664110]::run_compiler::{closure#0}>::{closure#1}
  80:     0x7f02311f7711 - std[19739dcbdd52d894]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[dfcc7ff3f03a05db]::util::run_in_thread_with_globals<rustc_interface[dfcc7ff3f03a05db]::util::run_in_thread_pool_with_globals<rustc_interface[dfcc7ff3f03a05db]::interface::run_compiler<(), rustc_driver_impl[3177e72804664110]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  81:     0x7f02311f7ba6 - <<std[19739dcbdd52d894]::thread::Builder>::spawn_unchecked_<rustc_interface[dfcc7ff3f03a05db]::util::run_in_thread_with_globals<rustc_interface[dfcc7ff3f03a05db]::util::run_in_thread_pool_with_globals<rustc_interface[dfcc7ff3f03a05db]::interface::run_compiler<(), rustc_driver_impl[3177e72804664110]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[57d68807791337c0]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  82:     0x7f02311f916f - std::sys::pal::unix::thread::Thread::new::thread_start::h71fe57097907b3f8
  83:     0x7f022b47ecb8 - start_thread
  84:     0x7f022b501f5c - __GI___clone3
  85:                0x0 - <unknown>


query stack during panic:
#0 [mir_built] building MIR for `api::identity::twofactor_auth::{closure#0}`
#1 [has_ffi_unwind_calls] checking if `api::identity::twofactor_auth::{closure#0}` contains FFI-unwind calls
#2 [mir_promoted] promoting constants in MIR for `api::identity::twofactor_auth::{closure#0}`
#3 [mir_borrowck] borrow-checking `api::identity::twofactor_auth::{closure#0}`
#4 [mir_borrowck] borrow-checking `api::identity::twofactor_auth`
#5 [type_of_opaque] computing type of opaque `api::identity::twofactor_auth::{opaque#0}`
#6 [type_of] computing type of `api::identity::twofactor_auth::{opaque#0}`
#7 [check_well_formed] checking that `api::identity::login::{opaque#0}` is well-formed
#8 [check_mod_type_wf] checking that types are well-formed in module `api::identity`
#9 [analysis] running analysis passes on this crate
end of query stack

@clin1234 clin1234 added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Dec 20, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Dec 20, 2024
@compiler-errors compiler-errors marked this as a duplicate of #134569 Dec 20, 2024
@compiler-errors
Copy link
Member

I've begun to minimize this:

#![warn(tail_expr_drop_order)]

use std::time::Duration;

use tokio::time::sleep;
use tracing::warn;

pub async fn retry_db<F, T, E>(mut func: F, max_tries: u32) -> Result<T, E>
where
    F: FnMut() -> Result<T, E>,
    E: std::error::Error,
{
    let mut tries = 0;

    loop {
        match func() {
            ok @ Ok(_) => return ok,
            Err(e) => {
                tries += 1;

                if tries >= max_tries && max_tries > 0 {
                    return Err(e);
                }

                warn!("Can't connect to database, retrying: {:?}", e);

                sleep(Duration::from_millis(1_000)).await;
            }
        }
    }
}

@compiler-errors
Copy link
Member

Minimized more:

#![warn(tail_expr_drop_order)]

type Error = Box<dyn std::error::Error>;

async fn func() -> Result<(), Error> {
    todo!()
}

pub async fn retry_db() -> Result<(), Error> {
    loop {
        match func().await {
            Ok(()) => return Ok(()),
            Err(e) => {}
        }
    }
}

@compiler-errors
Copy link
Member

Anyways I have a fix

@rustbot claim

@jieyouxu jieyouxu removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Dec 20, 2024
@bors bors closed this as completed in 307fe49 Dec 21, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Dec 21, 2024
Rollup merge of rust-lang#134575 - compiler-errors:drop-lint-coro, r=nikomatsakis

Handle `DropKind::ForLint` in coroutines correctly

Fixes rust-lang#134566
Fixes rust-lang#134541
@matthiaskrgr
Copy link
Member

Are there some special flags required to reproduce this?
When I try with a 9e136a3 toolchain and
~/.rustup/toolchains/9e136a30a965bf4e63f03095c57df7257bf96fd6/bin/rustc a.rs --edition=2021 --crate-type lib -Clink-dead-code -Copt-level=3 -Cdebuginfo=2 on #134566 (comment) , I only get

warning: unused variable: `e`
  --> a.rs:13:17
   |
13 |             Err(e) => {}
   |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: relative drop order changing in Rust 2024
  --> a.rs:11:15
   |
11 |         match func().await {
   |               ^^^^^^^-----
   |               |      |
   |               |      this value will be stored in a temporary; let us call it `#1`
   |               |      `#1` will be dropped later as of Edition 2024
   |               this value will be stored in a temporary; let us call it `#2`
   |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
12 |             Ok(()) => return Ok(()),
13 |             Err(e) => {}
   |                 -
   |                 |
   |                 `e` calls a custom destructor
   |                 `e` will be dropped later as of Edition 2024
14 |         }
15 |     }
   |     - now the temporary value is dropped here, before the local variables in the block or statement
   |
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/temporary-tail-expr-scope.html>
   = note: `#2` may invoke a custom destructor because it contains a trait object
   = note: `#1` may invoke a custom destructor because it contains a trait object
   = note: `e` may invoke a custom destructor because it contains a trait object
   = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
note: the lint level is defined here
  --> a.rs:1:9
   |
1  | #![warn(tail_expr_drop_order)]
   |         ^^^^^^^^^^^^^^^^^^^^

same for the test in https://github.com/rust-lang/rust/pull/134575/files#diff-9852a8cce1503eef228ae01d4f39913c8b6ccedb64d4d9b8e7c6bd0cc436781c with --edition=2021

~/.rustup/toolchains/9e136a30a965bf4e63f03095c57df7257bf96fd6/bin/rustc  3.rs --edition=2021
warning: unused variable: `e`
  --> 3.rs:24:17
   |
24 |             Err(e) => {}
   |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
   |
   = note: `#[warn(unused_variables)]` on by default

error: relative drop order changing in Rust 2024
  --> 3.rs:20:15
   |
20 |         match func().await {
   |               ^^^^^^^-----
   |               |      |
   |               |      this value will be stored in a temporary; let us call it `#1`
   |               |      `#1` will be dropped later as of Edition 2024
   |               this value will be stored in a temporary; let us call it `#2`
   |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
...
24 |             Err(e) => {}
   |                 -
   |                 |
   |                 `e` calls a custom destructor
   |                 `e` will be dropped later as of Edition 2024
25 |         }
26 |     }
   |     - now the temporary value is dropped here, before the local variables in the block or statement
   |
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/temporary-tail-expr-scope.html>
note: `#2` invokes this custom destructor
  --> 3.rs:10:1
   |
10 | / impl std::ops::Drop for Drop {
11 | |     fn drop(&mut self) {}
12 | | }
   | |_^
note: `#1` invokes this custom destructor
  --> 3.rs:10:1
   |
10 | / impl std::ops::Drop for Drop {
11 | |     fn drop(&mut self) {}
12 | | }
   | |_^
note: `e` invokes this custom destructor
  --> 3.rs:10:1
   |
10 | / impl std::ops::Drop for Drop {
11 | |     fn drop(&mut self) {}
12 | | }
   | |_^
   = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
note: the lint level is defined here
  --> 3.rs:7:9
   |
7  | #![deny(tail_expr_drop_order)]
   |         ^^^^^^^^^^^^^^^^^^^^

warning: struct `Drop` is never constructed
 --> 3.rs:9:8
  |
9 | struct Drop;
  |        ^^^^
  |
  = note: `#[warn(dead_code)]` on by default

warning: function `func` is never used
  --> 3.rs:14:10
   |
14 | async fn func() -> Result<(), Drop> {
   |          ^^^^

warning: function `retry_db` is never used
  --> 3.rs:18:10
   |
18 | async fn retry_db() -> Result<(), Drop> {
   |          ^^^^^^^^

error: aborting due to 1 previous error; 4 warnings emitted

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants