rust-lang / rust-lang/rust

[ICE]: `upvar_tys called before capture types are inferred`

Open
#151,332 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug F-transmutability F-unboxed_closures I-ICE T-compiler WG-trait-system-refactor
Dominant language
Rust
Stars
119k
Forks
16.2k
PR merge metrics
PR metrics pending

Description

Code
#![feature(transmutability)]
#![feature(unboxed_closures)]
fn main() ->impl std::mem::TransmuteFrom() {
  || {}
}

Meta

rustc --version --verbose:

rustc 1.94.0-nightly (fe98ddcfc 2026-01-17)
binary: rustc
commit-hash: fe98ddcfcfb6f185dbf4adeaf439d8a756da0273
commit-date: 2026-01-17
host: x86_64-unknown-linux-gnu
release: 1.94.0-nightly
LLVM version: 21.1.8
Error output

rustc code.rs -Znext-solver=globally

error[E0220]: associated type `Output` not found for `TransmuteFrom`
 --> code.rs:3:28
  |
3 | fn main() ->impl std::mem::TransmuteFrom() {
  |                            ^^^^^^^^^^^^^^^ associated type `Output` not found
Backtrace



thread 'rustc' (2152898) panicked at /rustc-dev/fe98ddcfcfb6f185dbf4adeaf439d8a756da0273/compiler/rustc_type_ir/src/ty_kind/closure.rs:165:29:
upvar_tys called before capture types are inferred
stack backtrace:
   0:     0x7fd34fa42f93 - <<std[7637d35b2e73f491]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e59341b65d367131]::fmt::Display>::fmt
   1:     0x7fd35000e2c8 - core[e59341b65d367131]::fmt::write
   2:     0x7fd34fa59986 - <std[7637d35b2e73f491]::sys::stdio::unix::Stderr as std[7637d35b2e73f491]::io::Write>::write_fmt
   3:     0x7fd34fa19008 - std[7637d35b2e73f491]::panicking::default_hook::{closure#0}
   4:     0x7fd34fa366c3 - std[7637d35b2e73f491]::panicking::default_hook
   5:     0x7fd34ea0b7fa - std[7637d35b2e73f491]::panicking::update_hook::<alloc[e4cd1c42012959c4]::boxed::Box<rustc_driver_impl[1a3eae45778b1a3a]::install_ice_hook::{closure#1}>>::{closure#0}
   6:     0x7fd34fa369a2 - std[7637d35b2e73f491]::panicking::panic_with_hook
   7:     0x7fd34fa190fa - std[7637d35b2e73f491]::panicking::panic_handler::{closure#0}
   8:     0x7fd34fa0d579 - std[7637d35b2e73f491]::sys::backtrace::__rust_end_short_backtrace::<std[7637d35b2e73f491]::panicking::panic_handler::{closure#0}, !>
   9:     0x7fd34fa1ab9d - __rustc[f6c708c0d8e4bdd6]::rust_begin_unwind
  10:     0x7fd34cce91fc - core[e59341b65d367131]::panicking::panic_fmt
  11:     0x7fd3509806bd - rustc_ty_utils[f823f1d5efade7eb]::layout::layout_of_uncached
  12:     0x7fd350974589 - rustc_ty_utils[f823f1d5efade7eb]::layout::layout_of
  13:     0x7fd3509744f0 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::layout_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 16usize]>>
  14:     0x7fd3509735d7 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_query_system[11b36a7129bd2e9f]::query::caches::DefaultCache<rustc_middle[f49c2f37af7e8c7e]::ty::PseudoCanonicalInput<rustc_middle[f49c2f37af7e8c7e]::ty::Ty>, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 16usize]>>, false, true, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  15:     0x7fd3509731f4 - rustc_query_impl[f993d76296ac3ede]::query_impl::layout_of::get_query_non_incr::__rust_end_short_backtrace
  16:     0x7fd34f95f028 - rustc_transmute[a79904f2c7e85e92]::layout::rustc::layout_of
  17:     0x7fd34f95d0a2 - <rustc_transmute[a79904f2c7e85e92]::layout::tree::Tree<rustc_transmute[a79904f2c7e85e92]::layout::rustc::Def, rustc_middle[f49c2f37af7e8c7e]::ty::region::Region, rustc_middle[f49c2f37af7e8c7e]::ty::Ty>>::from_ty
  18:     0x7fd34f956d84 - <rustc_transmute[a79904f2c7e85e92]::rustc::TransmuteTypeEnv>::is_transmutable
  19:     0x7fd34f88a775 - <rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate as rustc_next_trait_solver[170a8c4b65e982f7]::delegate::SolverDelegate>::is_transmutable
  20:     0x7fd34ed755b0 - <rustc_type_ir[a44b4988878e9ab6]::predicate::TraitPredicate<rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt> as rustc_next_trait_solver[170a8c4b65e982f7]::solve::assembly::GoalKind<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::consider_builtin_transmute_candidate
  21:     0x7fd3514ba564 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::assemble_builtin_impl_candidates::<rustc_type_ir[a44b4988878e9ab6]::predicate::TraitPredicate<rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>
  22:     0x7fd350ec757e - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::assemble_and_evaluate_candidates::<rustc_type_ir[a44b4988878e9ab6]::predicate::TraitPredicate<rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>
  23:     0x7fd351252e29 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::compute_trait_goal
  24:     0x7fd350edad22 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate> as rustc_type_ir[a44b4988878e9ab6]::search_graph::Delegate>::compute_goal::{closure#0}
  25:     0x7fd350ed9d8d - <rustc_type_ir[a44b4988878e9ab6]::search_graph::SearchGraph<rustc_next_trait_solver[170a8c4b65e982f7]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate>, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::evaluate_goal::{closure#0}::{closure#2}
  26:     0x7fd350c1d8c5 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::evaluate_goal_raw
  27:     0x7fd350c4178d - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::try_evaluate_added_goals
  28:     0x7fd350c2bef1 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::evaluate_added_goals_and_make_canonical_response
  29:     0x7fd350edce53 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate> as rustc_type_ir[a44b4988878e9ab6]::search_graph::Delegate>::compute_goal::{closure#0}
  30:     0x7fd350ed9d8d - <rustc_type_ir[a44b4988878e9ab6]::search_graph::SearchGraph<rustc_next_trait_solver[170a8c4b65e982f7]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate>, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::evaluate_goal::{closure#0}::{closure#2}
  31:     0x7fd350c1d8c5 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::evaluate_goal_raw
  32:     0x7fd350c41b0a - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::try_evaluate_added_goals
  33:     0x7fd350edb072 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate> as rustc_type_ir[a44b4988878e9ab6]::search_graph::Delegate>::compute_goal::{closure#0}
  34:     0x7fd350ed9d8d - <rustc_type_ir[a44b4988878e9ab6]::search_graph::SearchGraph<rustc_next_trait_solver[170a8c4b65e982f7]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate>, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::evaluate_goal::{closure#0}::{closure#2}
  35:     0x7fd350c1d8c5 - <rustc_next_trait_solver[170a8c4b65e982f7]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[ea11fdd225b236a7]::solve::delegate::SolverDelegate, rustc_middle[f49c2f37af7e8c7e]::ty::context::TyCtxt>>::evaluate_goal_raw
  36:     0x7fd350c3dd11 - <rustc_trait_selection[ea11fdd225b236a7]::solve::fulfill::FulfillmentCtxt<rustc_trait_selection[ea11fdd225b236a7]::traits::FulfillmentError> as rustc_infer[66736765ef873b69]::traits::engine::TraitEngine<rustc_trait_selection[ea11fdd225b236a7]::traits::FulfillmentError>>::try_evaluate_obligations
  37:     0x7fd35035a211 - <rustc_hir_typeck[cda3b2c1a48d49f5]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  38:     0x7fd350339e33 - rustc_hir_typeck[cda3b2c1a48d49f5]::check::check_fn
  39:     0x7fd350d7ccf3 - rustc_hir_typeck[cda3b2c1a48d49f5]::typeck_with_inspect::{closure#0}
  40:     0x7fd350d7b674 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>>
  41:     0x7fd35016ecaa - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_data_structures[ab77da159d78a1fb]::vec_cache::VecCache<rustc_span[d2f47af3535269a]::def_id::LocalDefId, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[11b36a7129bd2e9f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  42:     0x7fd35016e589 - rustc_query_impl[f993d76296ac3ede]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  43:     0x7fd350526cf6 - rustc_mir_build[916b7e25050224b]::thir::pattern::check_match::check_match
  44:     0x7fd35052609f - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 1usize]>>
  45:     0x7fd35077b4f8 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_data_structures[ab77da159d78a1fb]::vec_cache::VecCache<rustc_span[d2f47af3535269a]::def_id::LocalDefId, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[11b36a7129bd2e9f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  46:     0x7fd35077b1bd - rustc_query_impl[f993d76296ac3ede]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace
  47:     0x7fd3505022eb - rustc_mir_build[916b7e25050224b]::builder::build_mir_inner_impl
  48:     0x7fd350008dea - rustc_mir_transform[8e6f1eb7ff0fdc6d]::mir_built
  49:     0x7fd350008db3 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>>
  50:     0x7fd35016ecaa - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_data_structures[ab77da159d78a1fb]::vec_cache::VecCache<rustc_span[d2f47af3535269a]::def_id::LocalDefId, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[11b36a7129bd2e9f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  51:     0x7fd35016e709 - rustc_query_impl[f993d76296ac3ede]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  52:     0x7fd35004f797 - rustc_mir_transform[8e6f1eb7ff0fdc6d]::ffi_unwind_calls::has_ffi_unwind_calls
  53:     0x7fd35004f1a9 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 1usize]>>
  54:     0x7fd35077b4f8 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_data_structures[ab77da159d78a1fb]::vec_cache::VecCache<rustc_span[d2f47af3535269a]::def_id::LocalDefId, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[11b36a7129bd2e9f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  55:     0x7fd35077b07d - rustc_query_impl[f993d76296ac3ede]::query_impl::has_ffi_unwind_calls::get_query_non_incr::__rust_end_short_backtrace
  56:     0x7fd350d0eda9 - rustc_mir_transform[8e6f1eb7ff0fdc6d]::mir_promoted
  57:     0x7fd350d0ebd2 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 16usize]>>
  58:     0x7fd350a5bcb5 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_data_structures[ab77da159d78a1fb]::vec_cache::VecCache<rustc_span[d2f47af3535269a]::def_id::LocalDefId, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[11b36a7129bd2e9f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  59:     0x7fd350a5b84c - rustc_query_impl[f993d76296ac3ede]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  60:     0x7fd35111a125 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>>
  61:     0x7fd35016ecaa - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_data_structures[ab77da159d78a1fb]::vec_cache::VecCache<rustc_span[d2f47af3535269a]::def_id::LocalDefId, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[11b36a7129bd2e9f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  62:     0x7fd350165a19 - rustc_query_impl[f993d76296ac3ede]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  63:     0x7fd350ffd035 - rustc_hir_analysis[5017dacce67ac1a4]::collect::type_of::opaque::find_opaque_ty_constraints_for_rpit
  64:     0x7fd350ffccb8 - rustc_hir_analysis[5017dacce67ac1a4]::collect::type_of::type_of_opaque
  65:     0x7fd350ffcba3 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>>
  66:     0x7fd350017c45 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_query_system[11b36a7129bd2e9f]::query::caches::DefIdCache<rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  67:     0x7fd35123841b - rustc_query_impl[f993d76296ac3ede]::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
  68:     0x7fd3507bb7b6 - rustc_hir_analysis[5017dacce67ac1a4]::collect::type_of::type_of
  69:     0x7fd35018f866 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>>
  70:     0x7fd350017c45 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_query_system[11b36a7129bd2e9f]::query::caches::DefIdCache<rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  71:     0x7fd3500177ef - rustc_query_impl[f993d76296ac3ede]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  72:     0x7fd350ffd73b - rustc_hir_analysis[5017dacce67ac1a4]::check::check::check_opaque
  73:     0x7fd350783e78 - rustc_hir_analysis[5017dacce67ac1a4]::check::check::check_item_type
  74:     0x7fd35077bd1c - rustc_hir_analysis[5017dacce67ac1a4]::check::wfcheck::check_well_formed
  75:     0x7fd35077bceb - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 1usize]>>
  76:     0x7fd35077b763 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_data_structures[ab77da159d78a1fb]::vec_cache::VecCache<rustc_span[d2f47af3535269a]::def_id::LocalDefId, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[11b36a7129bd2e9f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  77:     0x7fd35077b256 - rustc_query_impl[f993d76296ac3ede]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  78:     0x7fd350778a51 - rustc_hir_analysis[5017dacce67ac1a4]::check::wfcheck::check_type_wf
  79:     0x7fd3507788dd - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::check_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 1usize]>>
  80:     0x7fd3511f90d1 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_query_system[11b36a7129bd2e9f]::query::caches::SingleCache<rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  81:     0x7fd3511f8d82 - rustc_query_impl[f993d76296ac3ede]::query_impl::check_type_wf::get_query_non_incr::__rust_end_short_backtrace
  82:     0x7fd350814296 - rustc_hir_analysis[5017dacce67ac1a4]::check_crate
  83:     0x7fd350162e5b - rustc_interface[70956b6af7f02b7a]::passes::analysis
  84:     0x7fd350162ab5 - rustc_query_impl[f993d76296ac3ede]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[f993d76296ac3ede]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 0usize]>>
  85:     0x7fd3511f9e23 - rustc_query_system[11b36a7129bd2e9f]::query::plumbing::try_execute_query::<rustc_query_impl[f993d76296ac3ede]::DynamicConfig<rustc_query_system[11b36a7129bd2e9f]::query::caches::SingleCache<rustc_middle[f49c2f37af7e8c7e]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[f993d76296ac3ede]::plumbing::QueryCtxt, false>
  86:     0x7fd3511f9c0e - rustc_query_impl[f993d76296ac3ede]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  87:     0x7fd351217dd1 - <rustc_interface[70956b6af7f02b7a]::passes::create_and_enter_global_ctxt<core[e59341b65d367131]::option::Option<rustc_interface[70956b6af7f02b7a]::queries::Linker>, rustc_driver_impl[1a3eae45778b1a3a]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[e59341b65d367131]::ops::function::FnOnce<(&rustc_session[ef90395b1d579b60]::session::Session, rustc_middle[f49c2f37af7e8c7e]::ty::context::CurrentGcx, alloc[e4cd1c42012959c4]::sync::Arc<rustc_data_structures[ab77da159d78a1fb]::jobserver::Proxy>, &std[7637d35b2e73f491]::sync::once_lock::OnceLock<rustc_middle[f49c2f37af7e8c7e]::ty::context::GlobalCtxt>, &rustc_data_structures[ab77da159d78a1fb]::sync::worker_local::WorkerLocal<rustc_middle[f49c2f37af7e8c7e]::arena::Arena>, &rustc_data_structures[ab77da159d78a1fb]::sync::worker_local::WorkerLocal<rustc_hir[78cba43770fa9cc1]::Arena>, rustc_driver_impl[1a3eae45778b1a3a]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  88:     0x7fd351198cf4 - rustc_interface[70956b6af7f02b7a]::interface::run_compiler::<(), rustc_driver_impl[1a3eae45778b1a3a]::run_compiler::{closure#0}>::{closure#1}
  89:     0x7fd351135dba - std[7637d35b2e73f491]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[70956b6af7f02b7a]::util::run_in_thread_with_globals<rustc_interface[70956b6af7f02b7a]::util::run_in_thread_pool_with_globals<rustc_interface[70956b6af7f02b7a]::interface::run_compiler<(), rustc_driver_impl[1a3eae45778b1a3a]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  90:     0x7fd351135b7e - <std[7637d35b2e73f491]::thread::lifecycle::spawn_unchecked<rustc_interface[70956b6af7f02b7a]::util::run_in_thread_with_globals<rustc_interface[70956b6af7f02b7a]::util::run_in_thread_pool_with_globals<rustc_interface[70956b6af7f02b7a]::interface::run_compiler<(), rustc_driver_impl[1a3eae45778b1a3a]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[e59341b65d367131]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  91:     0x7fd351137944 - <std[7637d35b2e73f491]::sys::thread::unix::Thread>::new::thread_start
  92:     0x7fd34aa9698b - <unknown>
  93:     0x7fd34ab1a9cc - <unknown>
  94:                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 `/home/matthias/vcs/github/CRED/rustc-ice-2026-01-18T18_26_21-2152880.txt` to your bug report

note: rustc 1.94.0-nightly (fe98ddcfc 2026-01-17) running on x86_64-unknown-linux-gnu

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

query stack during panic:
panicked at /rustc-dev/fe98ddcfcfb6f185dbf4adeaf439d8a756da0273/compiler/rustc_type_ir/src/ty_kind.rs:680:17:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the ICE with the issue's code.rs example using rustc code.rs -Znext-solver=globally. Start at compiler/rustc_type_ir/src/ty_kind/closure.rs:165:29, then follow the transmute and trait-solver frames shown in the backtrace. Done means the example no longer panics and produces an appropriate compiler diagnostic.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.