Skip to content

ICE when comparing traits returned from future #143209

Closed
@JadedBlueEyes

Description

@JadedBlueEyes

Code

pub trait Event {
    fn func() -> bool;
}
impl Event for String {
    fn func() -> bool {
        true
    }
}

pub async fn auth_check<FS, FE, FutS, FutE, Fetched>(fetch_state: FS, fetch_event: FE) -> bool
where
    FS: Fn(&str, &str) -> FutS + Send,
    FE: Fn(&str) -> FutE + Send,
    FutS: Future<Output = Option<Fetched>> + Send,
    FutE: Future<Output = Option<Fetched>> + Send,
    Fetched: Event + Send,
{
    fetch_state("a", "b").await == fetch_event("c").await
}

Meta

rustc --version --verbose:

rustc 1.88.0 (6b00bc388 2025-06-23)
binary: rustc
commit-hash: 6b00bc3880198600130e1cf62b8f8a93494488cc
commit-date: 2025-06-23
host: aarch64-apple-darwin
release: 1.88.0
LLVM version: 20.1.5

Error output

ZSH⠀> rustc --edition 2024 ice.rs
error[E0601]: `main` function not found in crate `ice`
  --> ice.rs:19:2
   |
19 | }
   |  ^ consider adding a `main` function to `ice.rs`


thread 'rustc' panicked at compiler/rustc_hir_typeck/src/gather_locals.rs:112:17:
assertion `left == right` failed
  left: Some(?38t)
 right: None
stack backtrace:
   0:        0x10e0197e4 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h2c3f7b4c4ce00f07
   1:        0x10b609558 - core::fmt::write::h1dbafa36e52e01c5
   2:        0x10e00e118 - std::io::Write::write_fmt::he72d49f3084ee601
   3:        0x10e0196a4 - std::sys::backtrace::BacktraceLock::print::h1fb87370474572ed
   4:        0x10e01e360 - std::panicking::default_hook::{{closure}}::h195a9b2c829547eb
   5:        0x10e01e030 - std::panicking::default_hook::h18c3aa3e3a3584d5
   6:        0x10c174724 - std[72c7846bd0c5b2df]::panicking::update_hook::<alloc[546c5ff29fefb371]::boxed::Box<rustc_driver_impl[8a44d88c4f0f23]::install_ice_hook::{closure#1}>>::{closure#0}
   7:        0x10e01ed48 - std::panicking::rust_panic_with_hook::h02a9fa3cad928562
   8:        0x10e01e93c - std::panicking::begin_panic_handler::{{closure}}::hd1cc56578f819958
   9:        0x10e019c88 - std::sys::backtrace::__rust_end_short_backtrace::h52c1e479035e4bc4
  10:        0x10e01e604 - __rustc[4794b31dd7191200]::rust_begin_unwind
  11:        0x110c5955c - core::panicking::panic_fmt::heec96bfc27e6c546
  12:        0x110c5992c - core::panicking::assert_failed_inner::hed32fec0f098204f
  13:        0x110ddade8 - core[27359fb985a9eb5]::panicking::assert_failed::<core[27359fb985a9eb5]::option::Option<rustc_middle[be4ece2d81dbf2e4]::ty::Ty>, core[27359fb985a9eb5]::option::Option<rustc_middle[be4ece2d81dbf2e4]::ty::Ty>>
  14:        0x10c7df530 - <rustc_hir_typeck[82c1352f9fdf0eae]::gather_locals::GatherLocalsVisitor as rustc_hir[9ba99a8cb2087a93]::intravisit::Visitor>::visit_pat
  15:        0x10c84e000 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_kind
  16:        0x10c7851f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  17:        0x10c80f85c - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_overloaded_binop
  18:        0x10c84cadc - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_kind
  19:        0x10c7851f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  20:        0x10c7c3800 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_block
  21:        0x10c7851f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  22:        0x10c84aaac - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_kind
  23:        0x10c7851f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  24:        0x10c7c3800 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_block
  25:        0x10c7851f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  26:        0x10c787448 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_return_or_body_tail
  27:        0x10c83e3b8 - rustc_hir_typeck[82c1352f9fdf0eae]::check::check_fn
  28:        0x10c856558 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_kind
  29:        0x10c7851f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  30:        0x10c787448 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_return_or_body_tail
  31:        0x10c83e3b8 - rustc_hir_typeck[82c1352f9fdf0eae]::check::check_fn
  32:        0x10c87a910 - rustc_hir_typeck[82c1352f9fdf0eae]::typeck_with_inspect::{closure#0}
  33:        0x10c83abf4 - rustc_hir_typeck[82c1352f9fdf0eae]::typeck
  34:        0x10d7770a4 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  35:        0x10d5ca620 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_hir[9ba99a8cb2087a93]::hir_id::OwnerId, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  36:        0x10d7a64f8 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  37:        0x10cf37a28 - rustc_mir_build[e6d49e91f9868cb0]::thir::pattern::check_match::check_match
  38:        0x10d771388 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>
  39:        0x10d5c3754 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_span[93d1c13bb489426]::def_id::CrateNum, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  40:        0x10d7b2710 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace
  41:        0x10cef8404 - rustc_mir_build[e6d49e91f9868cb0]::builder::build_mir
  42:        0x10d0ec174 - rustc_mir_transform[1f00383fcc5b1aba]::mir_built
  43:        0x10d7774ac - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  44:        0x10d5ca620 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_hir[9ba99a8cb2087a93]::hir_id::OwnerId, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  45:        0x10d78be50 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  46:        0x10d0d445c - rustc_mir_transform[1f00383fcc5b1aba]::ffi_unwind_calls::has_ffi_unwind_calls
  47:        0x10d774888 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>
  48:        0x10d5c3754 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_span[93d1c13bb489426]::def_id::CrateNum, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  49:        0x10d7d05a0 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::has_ffi_unwind_calls::get_query_non_incr::__rust_end_short_backtrace
  50:        0x10d0ec5c8 - rustc_mir_transform[1f00383fcc5b1aba]::mir_promoted
  51:        0x10d7718b4 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 16usize]>>
  52:        0x10d5bf944 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_span[93d1c13bb489426]::def_id::CrateNum, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  53:        0x10d78d158 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  54:        0x10bc835f8 - rustc_borrowck[c6665d0970404557]::mir_borrowck
  55:        0x10d77185c - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  56:        0x10d5ca620 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_hir[9ba99a8cb2087a93]::hir_id::OwnerId, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  57:        0x10d7a72ec - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  58:        0x10c534b3c - rustc_hir_analysis[32f341dace8fcd26]::collect::type_of::opaque::find_opaque_ty_constraints_for_rpit
  59:        0x10c537008 - rustc_hir_analysis[32f341dace8fcd26]::collect::type_of::type_of_opaque
  60:        0x10d772338 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  61:        0x10d544478 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_query_system[e5df0f758f72467d]::query::caches::DefIdCache<rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  62:        0x10d7817a0 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
  63:        0x10c535790 - rustc_hir_analysis[32f341dace8fcd26]::collect::type_of::type_of
  64:        0x10d7770fc - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  65:        0x10d544478 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_query_system[e5df0f758f72467d]::query::caches::DefIdCache<rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  66:        0x10d7812f0 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  67:        0x10c4b8980 - rustc_hir_analysis[32f341dace8fcd26]::check::check::check_opaque
  68:        0x10c4c131c - rustc_hir_analysis[32f341dace8fcd26]::check::check::check_item_type
  69:        0x10c4ed7c0 - rustc_hir_analysis[32f341dace8fcd26]::check::wfcheck::check_well_formed
  70:        0x10d773520 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>
  71:        0x10d5c3754 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_span[93d1c13bb489426]::def_id::CrateNum, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  72:        0x10d7d33a0 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  73:        0x10c416ae8 - <rustc_middle[be4ece2d81dbf2e4]::hir::ModuleItems>::par_opaques::<rustc_hir_analysis[32f341dace8fcd26]::check::wfcheck::check_mod_type_wf::{closure#4}>::{closure#0}
  74:        0x10c4fd884 - rustc_hir_analysis[32f341dace8fcd26]::check::wfcheck::check_mod_type_wf
  75:        0x10d773504 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>
  76:        0x10d584510 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_query_system[e5df0f758f72467d]::query::caches::DefaultCache<rustc_span[93d1c13bb489426]::def_id::LocalModDefId, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  77:        0x10d7a4de8 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
  78:        0x10c57bb50 - rustc_hir_analysis[32f341dace8fcd26]::check_crate
  79:        0x10ca5e500 - rustc_interface[3c49f4d970e728]::passes::run_required_analyses
  80:        0x10ca61494 - rustc_interface[3c49f4d970e728]::passes::analysis
  81:        0x10d777118 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 0usize]>>
  82:        0x10d54812c - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_query_system[e5df0f758f72467d]::query::caches::SingleCache<rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  83:        0x10d78339c - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  84:        0x10c125768 - rustc_interface[3c49f4d970e728]::passes::create_and_enter_global_ctxt::<core[27359fb985a9eb5]::option::Option<rustc_interface[3c49f4d970e728]::queries::Linker>, rustc_driver_impl[8a44d88c4f0f23]::run_compiler::{closure#0}::{closure#2}>
  85:        0x10c171524 - rustc_interface[3c49f4d970e728]::interface::run_compiler::<(), rustc_driver_impl[8a44d88c4f0f23]::run_compiler::{closure#0}>::{closure#1}
  86:        0x10c16247c - std[72c7846bd0c5b2df]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[3c49f4d970e728]::util::run_in_thread_with_globals<rustc_interface[3c49f4d970e728]::util::run_in_thread_pool_with_globals<rustc_interface[3c49f4d970e728]::interface::run_compiler<(), rustc_driver_impl[8a44d88c4f0f23]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  87:        0x10c177ee0 - <<std[72c7846bd0c5b2df]::thread::Builder>::spawn_unchecked_<rustc_interface[3c49f4d970e728]::util::run_in_thread_with_globals<rustc_interface[3c49f4d970e728]::util::run_in_thread_pool_with_globals<rustc_interface[3c49f4d970e728]::interface::run_compiler<(), rustc_driver_impl[8a44d88c4f0f23]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[27359fb985a9eb5]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  88:        0x10e02128c - std::sys::pal::unix::thread::Thread::new::thread_start::hf0cf67e969add794
  89:        0x18c2f6c0c - __pthread_cond_wait

error: the compiler unexpectedly panicked. this is a bug.

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: rustc 1.88.0 (6b00bc388 2025-06-23) running on aarch64-apple-darwin

query stack during panic:
#0 [typeck] type-checking `auth_check`
#1 [check_match] match-checking `auth_check`
... and 9 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0601`.
Backtrace

ZSH⠀> RUST_BACKTRACE=full rustc --edition 2024 ice.rs
error[E0601]: `main` function not found in crate `ice`
  --> ice.rs:19:2
   |
19 | }
   |  ^ consider adding a `main` function to `ice.rs`


thread 'rustc' panicked at compiler/rustc_hir_typeck/src/gather_locals.rs:112:17:
assertion `left == right` failed
  left: Some(?38t)
 right: None
stack backtrace:
   0:        0x11011d7e4 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h2c3f7b4c4ce00f07
   1:        0x10d70d558 - core::fmt::write::h1dbafa36e52e01c5
   2:        0x110112118 - std::io::Write::write_fmt::he72d49f3084ee601
   3:        0x11011d6a4 - std::sys::backtrace::BacktraceLock::print::h1fb87370474572ed
   4:        0x110122360 - std::panicking::default_hook::{{closure}}::h195a9b2c829547eb
   5:        0x110122030 - std::panicking::default_hook::h18c3aa3e3a3584d5
   6:        0x10e278724 - std[72c7846bd0c5b2df]::panicking::update_hook::<alloc[546c5ff29fefb371]::boxed::Box<rustc_driver_impl[8a44d88c4f0f23]::install_ice_hook::{closure#1}>>::{closure#0}
   7:        0x110122d48 - std::panicking::rust_panic_with_hook::h02a9fa3cad928562
   8:        0x11012293c - std::panicking::begin_panic_handler::{{closure}}::hd1cc56578f819958
   9:        0x11011dc88 - std::sys::backtrace::__rust_end_short_backtrace::h52c1e479035e4bc4
  10:        0x110122604 - __rustc[4794b31dd7191200]::rust_begin_unwind
  11:        0x112d5d55c - core::panicking::panic_fmt::heec96bfc27e6c546
  12:        0x112d5d92c - core::panicking::assert_failed_inner::hed32fec0f098204f
  13:        0x112edede8 - core[27359fb985a9eb5]::panicking::assert_failed::<core[27359fb985a9eb5]::option::Option<rustc_middle[be4ece2d81dbf2e4]::ty::Ty>, core[27359fb985a9eb5]::option::Option<rustc_middle[be4ece2d81dbf2e4]::ty::Ty>>
  14:        0x10e8e3530 - <rustc_hir_typeck[82c1352f9fdf0eae]::gather_locals::GatherLocalsVisitor as rustc_hir[9ba99a8cb2087a93]::intravisit::Visitor>::visit_pat
  15:        0x10e952000 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_kind
  16:        0x10e8891f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  17:        0x10e91385c - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_overloaded_binop
  18:        0x10e950adc - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_kind
  19:        0x10e8891f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  20:        0x10e8c7800 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_block
  21:        0x10e8891f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  22:        0x10e94eaac - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_kind
  23:        0x10e8891f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  24:        0x10e8c7800 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_block
  25:        0x10e8891f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  26:        0x10e88b448 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_return_or_body_tail
  27:        0x10e9423b8 - rustc_hir_typeck[82c1352f9fdf0eae]::check::check_fn
  28:        0x10e95a558 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_kind
  29:        0x10e8891f4 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  30:        0x10e88b448 - <rustc_hir_typeck[82c1352f9fdf0eae]::fn_ctxt::FnCtxt>::check_return_or_body_tail
  31:        0x10e9423b8 - rustc_hir_typeck[82c1352f9fdf0eae]::check::check_fn
  32:        0x10e97e910 - rustc_hir_typeck[82c1352f9fdf0eae]::typeck_with_inspect::{closure#0}
  33:        0x10e93ebf4 - rustc_hir_typeck[82c1352f9fdf0eae]::typeck
  34:        0x10f87b0a4 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  35:        0x10f6ce620 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_hir[9ba99a8cb2087a93]::hir_id::OwnerId, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  36:        0x10f8aa4f8 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  37:        0x10f03ba28 - rustc_mir_build[e6d49e91f9868cb0]::thir::pattern::check_match::check_match
  38:        0x10f875388 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>
  39:        0x10f6c7754 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_span[93d1c13bb489426]::def_id::CrateNum, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  40:        0x10f8b6710 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace
  41:        0x10effc404 - rustc_mir_build[e6d49e91f9868cb0]::builder::build_mir
  42:        0x10f1f0174 - rustc_mir_transform[1f00383fcc5b1aba]::mir_built
  43:        0x10f87b4ac - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  44:        0x10f6ce620 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_hir[9ba99a8cb2087a93]::hir_id::OwnerId, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  45:        0x10f88fe50 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  46:        0x10f1d845c - rustc_mir_transform[1f00383fcc5b1aba]::ffi_unwind_calls::has_ffi_unwind_calls
  47:        0x10f878888 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>
  48:        0x10f6c7754 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_span[93d1c13bb489426]::def_id::CrateNum, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  49:        0x10f8d45a0 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::has_ffi_unwind_calls::get_query_non_incr::__rust_end_short_backtrace
  50:        0x10f1f05c8 - rustc_mir_transform[1f00383fcc5b1aba]::mir_promoted
  51:        0x10f8758b4 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 16usize]>>
  52:        0x10f6c3944 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_span[93d1c13bb489426]::def_id::CrateNum, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  53:        0x10f891158 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  54:        0x10dd875f8 - rustc_borrowck[c6665d0970404557]::mir_borrowck
  55:        0x10f87585c - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  56:        0x10f6ce620 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_hir[9ba99a8cb2087a93]::hir_id::OwnerId, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  57:        0x10f8ab2ec - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  58:        0x10e638b3c - rustc_hir_analysis[32f341dace8fcd26]::collect::type_of::opaque::find_opaque_ty_constraints_for_rpit
  59:        0x10e63b008 - rustc_hir_analysis[32f341dace8fcd26]::collect::type_of::type_of_opaque
  60:        0x10f876338 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  61:        0x10f648478 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_query_system[e5df0f758f72467d]::query::caches::DefIdCache<rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  62:        0x10f8857a0 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
  63:        0x10e639790 - rustc_hir_analysis[32f341dace8fcd26]::collect::type_of::type_of
  64:        0x10f87b0fc - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>
  65:        0x10f648478 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_query_system[e5df0f758f72467d]::query::caches::DefIdCache<rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  66:        0x10f8852f0 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  67:        0x10e5bc980 - rustc_hir_analysis[32f341dace8fcd26]::check::check::check_opaque
  68:        0x10e5c531c - rustc_hir_analysis[32f341dace8fcd26]::check::check::check_item_type
  69:        0x10e5f17c0 - rustc_hir_analysis[32f341dace8fcd26]::check::wfcheck::check_well_formed
  70:        0x10f877520 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>
  71:        0x10f6c7754 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_data_structures[f8a49ce7c8670f7e]::vec_cache::VecCache<rustc_span[93d1c13bb489426]::def_id::CrateNum, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[e5df0f758f72467d]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  72:        0x10f8d73a0 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  73:        0x10e51aae8 - <rustc_middle[be4ece2d81dbf2e4]::hir::ModuleItems>::par_opaques::<rustc_hir_analysis[32f341dace8fcd26]::check::wfcheck::check_mod_type_wf::{closure#4}>::{closure#0}
  74:        0x10e601884 - rustc_hir_analysis[32f341dace8fcd26]::check::wfcheck::check_mod_type_wf
  75:        0x10f877504 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>
  76:        0x10f688510 - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_query_system[e5df0f758f72467d]::query::caches::DefaultCache<rustc_span[93d1c13bb489426]::def_id::LocalModDefId, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  77:        0x10f8a8de8 - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
  78:        0x10e67fb50 - rustc_hir_analysis[32f341dace8fcd26]::check_crate
  79:        0x10eb62500 - rustc_interface[3c49f4d970e728]::passes::run_required_analyses
  80:        0x10eb65494 - rustc_interface[3c49f4d970e728]::passes::analysis
  81:        0x10f87b118 - rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 0usize]>>
  82:        0x10f64c12c - rustc_query_system[e5df0f758f72467d]::query::plumbing::try_execute_query::<rustc_query_impl[f2b4fd6c2e4cdec6]::DynamicConfig<rustc_query_system[e5df0f758f72467d]::query::caches::SingleCache<rustc_middle[be4ece2d81dbf2e4]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[f2b4fd6c2e4cdec6]::plumbing::QueryCtxt, false>
  83:        0x10f88739c - rustc_query_impl[f2b4fd6c2e4cdec6]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  84:        0x10e229768 - rustc_interface[3c49f4d970e728]::passes::create_and_enter_global_ctxt::<core[27359fb985a9eb5]::option::Option<rustc_interface[3c49f4d970e728]::queries::Linker>, rustc_driver_impl[8a44d88c4f0f23]::run_compiler::{closure#0}::{closure#2}>
  85:        0x10e275524 - rustc_interface[3c49f4d970e728]::interface::run_compiler::<(), rustc_driver_impl[8a44d88c4f0f23]::run_compiler::{closure#0}>::{closure#1}
  86:        0x10e26647c - std[72c7846bd0c5b2df]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[3c49f4d970e728]::util::run_in_thread_with_globals<rustc_interface[3c49f4d970e728]::util::run_in_thread_pool_with_globals<rustc_interface[3c49f4d970e728]::interface::run_compiler<(), rustc_driver_impl[8a44d88c4f0f23]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  87:        0x10e27bee0 - <<std[72c7846bd0c5b2df]::thread::Builder>::spawn_unchecked_<rustc_interface[3c49f4d970e728]::util::run_in_thread_with_globals<rustc_interface[3c49f4d970e728]::util::run_in_thread_pool_with_globals<rustc_interface[3c49f4d970e728]::interface::run_compiler<(), rustc_driver_impl[8a44d88c4f0f23]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[27359fb985a9eb5]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  88:        0x11012528c - std::sys::pal::unix::thread::Thread::new::thread_start::hf0cf67e969add794
  89:        0x18c2f6c0c - __pthread_cond_wait

error: the compiler unexpectedly panicked. this is a bug.

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: rustc 1.88.0 (6b00bc388 2025-06-23) running on aarch64-apple-darwin

query stack during panic:
#0 [typeck] type-checking `auth_check`
#1 [check_match] match-checking `auth_check`
#2 [mir_built] building MIR for `auth_check`
#3 [has_ffi_unwind_calls] checking if `auth_check` contains FFI-unwind calls
#4 [mir_promoted] promoting constants in MIR for `auth_check`
#5 [mir_borrowck] borrow-checking `auth_check`
#6 [type_of_opaque] computing type of opaque `auth_check::{opaque#0}`
#7 [type_of] computing type of `auth_check::{opaque#0}`
#8 [check_well_formed] checking that `auth_check::{opaque#0}` is well-formed
#9 [check_mod_type_wf] checking that types are well-formed in top-level module
#10 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0601`.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions