Skip to content

ICE: expected a projection #247

@matthiaskrgr

Description

@matthiaskrgr

Code

//@compile-flags: --edition=2021 -Znext-solver=globally
use core::ptr;
fn foo() -> impl Fn() {
    {
        fn bar(_: *const impl Sized) {}
        let p = ptr::null();
        if false {
            return unsafe { ptr::read(p) };
        }
        if false {
            return unsafe { ptr::read(p) };
        }
    }
    || {}
}

pub fn main() {}

this compiles fine with the old solver but ICEs with the new solver

Meta

rustc --version --verbose:

rustc 1.92.0-nightly (844264add 2025-10-14)
binary: rustc
commit-hash: 844264adda6f41ca6d0d61c4bcac0f263fc5072f
commit-date: 2025-10-14
host: x86_64-unknown-linux-gnu
release: 1.92.0-nightly
LLVM version: 21.1.3

Error output

<output>
Backtrace


thread 'rustc' (230095) panicked at /rustc-dev/844264adda6f41ca6d0d61c4bcac0f263fc5072f/compiler/rustc_type_ir/src/predicate.rs:680:9:
expected a projection
stack backtrace:
   0:     0x7f8b89bdcc13 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h4fa5e6395660f30c
   1:     0x7f8b8a20203c - core::fmt::write::hc93f6ebd2d51f7ae
   2:     0x7f8b89b90fa3 - std::io::Write::write_fmt::h1b96dc9100824f38
   3:     0x7f8b89ba22d2 - std::sys::backtrace::BacktraceLock::print::h24c0421cbc432886
   4:     0x7f8b89ba83a9 - std::panicking::default_hook::{{closure}}::he8f2c167c2aa307c
   5:     0x7f8b89ba7ed3 - std::panicking::default_hook::h1d83fcc8d0b248b4
   6:     0x7f8b88bb8e37 - std[f2848e9921687d15]::panicking::update_hook::<alloc[8cb8d028b8bfe246]::boxed::Box<rustc_driver_impl[ccbd2d4287f01110]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7f8b89ba87cf - std::panicking::panic_with_hook::hf84d5e35d2f8db23
   8:     0x7f8b89ba8556 - std::panicking::panic_handler::{{closure}}::ha7b2f9717942bd42
   9:     0x7f8b89ba2409 - std::sys::backtrace::__rust_end_short_backtrace::h031438cd10bb31b1
  10:     0x7f8b89b832cd - __rustc[96e5b112ee2f6bf6]::rust_begin_unwind
  11:     0x7f8b86c20180 - core::panicking::panic_fmt::h9db56b6dbfe1b5a1
  12:     0x7f8b899f8ca3 - <rustc_type_ir[654eb71778d37093]::predicate::AliasTerm<rustc_middle[fb0790242539ffc4]::ty::context::TyCtxt>>::trait_def_id
  13:     0x7f8b899c67f5 - <rustc_trait_selection[364ddf728dcc2381]::error_reporting::TypeErrCtxt>::report_fulfillment_errors
  14:     0x7f8b8b3b1b95 - rustc_hir_typeck[eb3f7922a19a8e89]::typeck_with_inspect::{closure#0}
  15:     0x7f8b8b3a73ce - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>>
  16:     0x7f8b8a591b77 - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_data_structures[77373741fa988e24]::vec_cache::VecCache<rustc_span[61533d5b12f0c530]::def_id::LocalDefId, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[5c31bed58866b4da]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  17:     0x7f8b8a591509 - rustc_query_impl[3c54fe11938d6962]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  18:     0x7f8b8acc9006 - rustc_mir_build[ae7d4e5360af5c00]::thir::pattern::check_match::check_match
  19:     0x7f8b8acc83db - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 1usize]>>
  20:     0x7f8b8aa725ef - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_data_structures[77373741fa988e24]::vec_cache::VecCache<rustc_span[61533d5b12f0c530]::def_id::LocalDefId, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[5c31bed58866b4da]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  21:     0x7f8b8aa722bd - rustc_query_impl[3c54fe11938d6962]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace
  22:     0x7f8b8a710322 - rustc_mir_build[ae7d4e5360af5c00]::builder::build_mir
  23:     0x7f8b8a209001 - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>>
  24:     0x7f8b8a591b77 - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_data_structures[77373741fa988e24]::vec_cache::VecCache<rustc_span[61533d5b12f0c530]::def_id::LocalDefId, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[5c31bed58866b4da]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  25:     0x7f8b8a5915c9 - rustc_query_impl[3c54fe11938d6962]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  26:     0x7f8b8a235d4d - rustc_mir_transform[828550c15c138be9]::ffi_unwind_calls::has_ffi_unwind_calls
  27:     0x7f8b8a235719 - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 1usize]>>
  28:     0x7f8b8aa725ef - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_data_structures[77373741fa988e24]::vec_cache::VecCache<rustc_span[61533d5b12f0c530]::def_id::LocalDefId, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[5c31bed58866b4da]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  29:     0x7f8b8aa7217d - rustc_query_impl[3c54fe11938d6962]::query_impl::has_ffi_unwind_calls::get_query_non_incr::__rust_end_short_backtrace
  30:     0x7f8b86f7a5b7 - rustc_mir_transform[828550c15c138be9]::mir_promoted
  31:     0x7f8b8abb44d2 - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 16usize]>>
  32:     0x7f8b8abb4795 - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_data_structures[77373741fa988e24]::vec_cache::VecCache<rustc_span[61533d5b12f0c530]::def_id::LocalDefId, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[5c31bed58866b4da]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  33:     0x7f8b8abb430e - rustc_query_impl[3c54fe11938d6962]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  34:     0x7f8b8b35cb23 - rustc_borrowck[b5f5a34adce7d29f]::mir_borrowck
  35:     0x7f8b8b35c9e3 - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>>
  36:     0x7f8b8a591b77 - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_data_structures[77373741fa988e24]::vec_cache::VecCache<rustc_span[61533d5b12f0c530]::def_id::LocalDefId, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[5c31bed58866b4da]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  37:     0x7f8b8a58fcc9 - rustc_query_impl[3c54fe11938d6962]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  38:     0x7f8b8b14f26f - rustc_hir_analysis[fdf198c2ef33b9d5]::collect::type_of::opaque::find_opaque_ty_constraints_for_rpit
  39:     0x7f8b8b14eff8 - rustc_hir_analysis[fdf198c2ef33b9d5]::collect::type_of::type_of_opaque
  40:     0x7f8b8b14eeef - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>>
  41:     0x7f8b8a21b484 - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_query_system[5c31bed58866b4da]::query::caches::DefIdCache<rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  42:     0x7f8b8aac2be9 - rustc_query_impl[3c54fe11938d6962]::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
  43:     0x7f8b8aabb56a - rustc_hir_analysis[fdf198c2ef33b9d5]::collect::type_of::type_of
  44:     0x7f8b8a21c7e6 - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>>
  45:     0x7f8b8a21b484 - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_query_system[5c31bed58866b4da]::query::caches::DefIdCache<rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  46:     0x7f8b8a21b01d - rustc_query_impl[3c54fe11938d6962]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  47:     0x7f8b8b1508ec - rustc_hir_analysis[fdf198c2ef33b9d5]::check::check::check_opaque
  48:     0x7f8b8aa7b816 - rustc_hir_analysis[fdf198c2ef33b9d5]::check::check::check_item_type
  49:     0x7f8b8aa72ff9 - rustc_hir_analysis[fdf198c2ef33b9d5]::check::wfcheck::check_well_formed
  50:     0x7f8b8aa72fdb - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 1usize]>>
  51:     0x7f8b8aa72852 - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_data_structures[77373741fa988e24]::vec_cache::VecCache<rustc_span[61533d5b12f0c530]::def_id::LocalDefId, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[5c31bed58866b4da]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  52:     0x7f8b8aa72356 - rustc_query_impl[3c54fe11938d6962]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  53:     0x7f8b8aa6fa91 - rustc_hir_analysis[fdf198c2ef33b9d5]::check::wfcheck::check_type_wf
  54:     0x7f8b8aa6f91d - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::check_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 1usize]>>
  55:     0x7f8b8b1f6848 - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_query_system[5c31bed58866b4da]::query::caches::SingleCache<rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  56:     0x7f8b8b1f660e - rustc_query_impl[3c54fe11938d6962]::query_impl::check_type_wf::get_query_non_incr::__rust_end_short_backtrace
  57:     0x7f8b8ac7f21c - rustc_hir_analysis[fdf198c2ef33b9d5]::check_crate
  58:     0x7f8b8a58b1f0 - rustc_interface[d8d0ae6a659ee2e1]::passes::analysis
  59:     0x7f8b8a58aeb3 - rustc_query_impl[3c54fe11938d6962]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3c54fe11938d6962]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 0usize]>>
  60:     0x7f8b8b1fcf5a - rustc_query_system[5c31bed58866b4da]::query::plumbing::try_execute_query::<rustc_query_impl[3c54fe11938d6962]::DynamicConfig<rustc_query_system[5c31bed58866b4da]::query::caches::SingleCache<rustc_middle[fb0790242539ffc4]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[3c54fe11938d6962]::plumbing::QueryCtxt, false>
  61:     0x7f8b8b1fcb90 - rustc_query_impl[3c54fe11938d6962]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  62:     0x7f8b8b4d7526 - <rustc_interface[d8d0ae6a659ee2e1]::passes::create_and_enter_global_ctxt<core[8a8d4eba41ef67ed]::option::Option<rustc_interface[d8d0ae6a659ee2e1]::queries::Linker>, rustc_driver_impl[ccbd2d4287f01110]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[8a8d4eba41ef67ed]::ops::function::FnOnce<(&rustc_session[12f22db21050d9ca]::session::Session, rustc_middle[fb0790242539ffc4]::ty::context::CurrentGcx, alloc[8cb8d028b8bfe246]::sync::Arc<rustc_data_structures[77373741fa988e24]::jobserver::Proxy>, &std[f2848e9921687d15]::sync::once_lock::OnceLock<rustc_middle[fb0790242539ffc4]::ty::context::GlobalCtxt>, &rustc_data_structures[77373741fa988e24]::sync::worker_local::WorkerLocal<rustc_middle[fb0790242539ffc4]::arena::Arena>, &rustc_data_structures[77373741fa988e24]::sync::worker_local::WorkerLocal<rustc_hir[47196bd28ebba74d]::Arena>, rustc_driver_impl[ccbd2d4287f01110]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  63:     0x7f8b8b323240 - rustc_interface[d8d0ae6a659ee2e1]::interface::run_compiler::<(), rustc_driver_impl[ccbd2d4287f01110]::run_compiler::{closure#0}>::{closure#1}
  64:     0x7f8b8b59c5c9 - std[f2848e9921687d15]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[d8d0ae6a659ee2e1]::util::run_in_thread_with_globals<rustc_interface[d8d0ae6a659ee2e1]::util::run_in_thread_pool_with_globals<rustc_interface[d8d0ae6a659ee2e1]::interface::run_compiler<(), rustc_driver_impl[ccbd2d4287f01110]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  65:     0x7f8b8b59c2aa - <<std[f2848e9921687d15]::thread::Builder>::spawn_unchecked_<rustc_interface[d8d0ae6a659ee2e1]::util::run_in_thread_with_globals<rustc_interface[d8d0ae6a659ee2e1]::util::run_in_thread_pool_with_globals<rustc_interface[d8d0ae6a659ee2e1]::interface::run_compiler<(), rustc_driver_impl[ccbd2d4287f01110]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[8a8d4eba41ef67ed]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  66:     0x7f8b8af324ef - std::sys::thread::unix::Thread::new::thread_start::hb816fbd0968567ab
  67:     0x7f8b84c969cb - <unknown>
  68:     0x7f8b84d1aa0c - <unknown>
  69:                0x0 - <unknown>

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: please make sure that you have updated to the latest nightly

note: please attach the file at `/tmp/im/rustc-ice-2025-10-15T19_47_21-230077.txt` to your bug report

note: compiler flags: -Z next-solver=globally

query stack during panic:
#0 [typeck] type-checking `foo`
rust-lang/rust#1 [check_match] match-checking `foo`
rust-lang/rust#2 [mir_built] building MIR for `foo`
rust-lang/rust#3 [has_ffi_unwind_calls] checking if `foo` contains FFI-unwind calls
rust-lang/rust#4 [mir_promoted] promoting constants in MIR for `foo`
rust-lang/rust#5 [mir_borrowck] borrow-checking `foo`
rust-lang/rust#6 [type_of_opaque] computing type of opaque `foo::{opaque#0}`
rust-lang/rust#7 [type_of] computing type of `foo::{opaque#0}`
rust-lang/rust#8 [check_well_formed] checking that `foo::{opaque#0}` is well-formed
rust-lang/rust#9 [check_type_wf] checking that types are well-formed
rust-lang/rust#10 [analysis] running analysis passes on this crate
end of query stack
note: no errors encountered even though delayed bugs were created

note: those delayed bugs will now be shown as internal compiler errors

error: internal compiler error: {OpaqueTypeKey { def_id: DefId(0:5 ~ ice[9b02]::foo::{opaque#0}), args: [] }: OpaqueHiddenType { span: ice.rs:8:29: 8:41 (#0), ty: ?9t }}
  |
  = note: delayed at compiler/rustc_infer/src/infer/opaque_types/table.rs:127:43
             0: <rustc_errors::DiagCtxtInner>::emit_diagnostic
             1: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
             2: <rustc_span::ErrorGuaranteed as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
             3: <rustc_errors::DiagCtxtHandle>::delayed_bug::<alloc::string::String>
             4: core::ptr::drop_in_place::<rustc_infer::infer::InferCtxt>
             5: core::ptr::drop_in_place::<rustc_hir_typeck::typeck_root_ctxt::TypeckRootCtxt>
             6: rustc_hir_typeck::typeck_with_inspect::{closure#0}
             7: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
             8: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
             9: rustc_query_impl::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
            10: rustc_mir_build::thir::pattern::check_match::check_match
            11: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
            12: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            13: rustc_query_impl::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace
            14: rustc_mir_build::builder::build_mir
            15: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
            16: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            17: rustc_query_impl::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
            18: rustc_mir_transform::ffi_unwind_calls::has_ffi_unwind_calls
            19: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
            20: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            21: rustc_query_impl::query_impl::has_ffi_unwind_calls::get_query_non_incr::__rust_end_short_backtrace
            22: rustc_mir_transform::mir_promoted
            23: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>
            24: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            25: rustc_query_impl::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
            26: rustc_borrowck::mir_borrowck
            27: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
            28: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            29: rustc_query_impl::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
            30: rustc_hir_analysis::collect::type_of::opaque::find_opaque_ty_constraints_for_rpit
            31: rustc_hir_analysis::collect::type_of::type_of_opaque
            32: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
            33: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            34: rustc_query_impl::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
            35: rustc_hir_analysis::collect::type_of::type_of
            36: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
            37: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            38: rustc_query_impl::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
            39: rustc_hir_analysis::check::check::check_opaque
            40: rustc_hir_analysis::check::check::check_item_type
            41: rustc_hir_analysis::check::wfcheck::check_well_formed
            42: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
            43: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            44: rustc_query_impl::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
            45: rustc_hir_analysis::check::wfcheck::check_type_wf
            46: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
            47: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            48: rustc_query_impl::query_impl::check_type_wf::get_query_non_incr::__rust_end_short_backtrace
            49: rustc_hir_analysis::check_crate
            50: rustc_interface::passes::analysis
            51: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 0]>>
            52: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 0]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
            53: rustc_query_impl::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
            54: <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}
            55: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}
            56: std::sys::backtrace::__rust_begin_short_backtrace::<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}, ()>
            57: <<std::thread::Builder>::spawn_unchecked_<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#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
            58: std::sys::thread::unix::Thread::new::thread_start
            59: <unknown>
            60: <unknown>


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: please attach the file at `/tmp/im/rustc-ice-2025-10-15T19_47_21-230077.txt` to your bug report

note: compiler flags: -Z next-solver=globally

query stack during panic:
end of query stack

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions