Skip to content

[ICE]: !self.type_checker.infcx.next_trait_solver() #158439

Description

@matthiaskrgr

Code

//@ compile-flags:  --edition=2021  -Znext-solver=globally
#![feature(type_alias_impl_trait)]
struct Task<F> {
    x: F,
}
impl Task<F> {
    fn spawn(&self, _: impl FnOnce() -> F) {}
}
type F = impl Sized;
#[define_opaque(F)]
fn foo() {
    async fn cb() {}
    Task::spawn(&POOL, cb)
}
static POOL: Task<F> = todo!();

fn main() {}

Meta

rustc --version --verbose:

rustc 1.98.0-nightly (bd08c9e71 2026-06-25)
binary: rustc
commit-hash: bd08c9e71874a81670fe3938dbf85148e42c2b96
commit-date: 2026-06-25
host: x86_64-unknown-linux-gnu
release: 1.98.0-nightly
LLVM version: 22.1.7

Error output


Backtrace


thread 'rustc' (246483) panicked at /rustc-dev/bd08c9e71874a81670fe3938dbf85148e42c2b96/compiler/rustc_borrowck/src/type_check/relate_tys.rs:396:21:
assertion failed: !self.type_checker.infcx.next_trait_solver()
stack backtrace:
   0:     0x7f0a508aa649 - <<std[603682f233fa450c]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[89b49370aeac10c4]::fmt::Display>::fmt
   1:     0x7f0a5100ec88 - core[89b49370aeac10c4]::fmt::write
   2:     0x7f0a508c0cb6 - <std[603682f233fa450c]::sys::stdio::unix::Stderr as std[603682f233fa450c]::io::Write>::write_fmt
   3:     0x7f0a5087f7ae - std[603682f233fa450c]::panicking::default_hook::{closure#0}
   4:     0x7f0a5089d1c3 - std[603682f233fa450c]::panicking::default_hook
   5:     0x7f0a4f8ae151 - std[603682f233fa450c]::panicking::update_hook::<alloc[8c0c04013ba8ce43]::boxed::Box<rustc_driver_impl[63bd032da2131052]::install_ice_hook::{closure#1}>>::{closure#0}
   6:     0x7f0a5089d612 - std[603682f233fa450c]::panicking::panic_with_hook
   7:     0x7f0a5087f8a4 - std[603682f233fa450c]::panicking::panic_handler::{closure#0}
   8:     0x7f0a50873d59 - std[603682f233fa450c]::sys::backtrace::__rust_end_short_backtrace::<std[603682f233fa450c]::panicking::panic_handler::{closure#0}, !>
   9:     0x7f0a508812dd - __rustc[e2604fe964b61793]::rust_begin_unwind
  10:     0x7f0a4d8f428c - core[89b49370aeac10c4]::panicking::panic_fmt
  11:     0x7f0a4dead6b2 - core[89b49370aeac10c4]::panicking::panic
  12:     0x7f0a5195ee4a - <core[89b49370aeac10c4]::result::Result<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg, rustc_type_ir[601fa74b34e01e4d]::error::TypeError<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>> as rustc_type_ir[601fa74b34e01e4d]::interner::CollectAndApply<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg, &rustc_middle[e540907124cae3aa]::ty::list::RawList<(), rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>>>::collect_and_apply::<core[89b49370aeac10c4]::iter::adapters::map::Map<core[89b49370aeac10c4]::iter::adapters::zip::Zip<core[89b49370aeac10c4]::iter::adapters::copied::Copied<core[89b49370aeac10c4]::slice::iter::Iter<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>>, core[89b49370aeac10c4]::iter::adapters::copied::Copied<core[89b49370aeac10c4]::slice::iter::Iter<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>>>, rustc_type_ir[601fa74b34e01e4d]::relate::relate_args_invariantly<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, rustc_borrowck[ca3623405feb84c3]::type_check::relate_tys::NllTypeRelating>::{closure#0}>, <rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>::mk_args_from_iter<core[89b49370aeac10c4]::iter::adapters::map::Map<core[89b49370aeac10c4]::iter::adapters::zip::Zip<core[89b49370aeac10c4]::iter::adapters::copied::Copied<core[89b49370aeac10c4]::slice::iter::Iter<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>>, core[89b49370aeac10c4]::iter::adapters::copied::Copied<core[89b49370aeac10c4]::slice::iter::Iter<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>>>, rustc_type_ir[601fa74b34e01e4d]::relate::relate_args_invariantly<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, rustc_borrowck[ca3623405feb84c3]::type_check::relate_tys::NllTypeRelating>::{closure#0}>, core[89b49370aeac10c4]::result::Result<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg, rustc_type_ir[601fa74b34e01e4d]::error::TypeError<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>>::{closure#0}>
  13:     0x7f0a51961525 - rustc_type_ir[601fa74b34e01e4d]::relate::structurally_relate_tys::<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, rustc_borrowck[ca3623405feb84c3]::type_check::relate_tys::NllTypeRelating>::{closure#0}
  14:     0x7f0a5197a1e4 - <rustc_borrowck[ca3623405feb84c3]::type_check::TypeChecker>::relate_types
  15:     0x7f0a51977f15 - <rustc_borrowck[ca3623405feb84c3]::type_check::TypeChecker as rustc_middle[e540907124cae3aa]::mir::visit::Visitor>::visit_const_operand
  16:     0x7f0a524a6134 - <rustc_borrowck[ca3623405feb84c3]::type_check::TypeChecker as rustc_middle[e540907124cae3aa]::mir::visit::Visitor>::visit_body
  17:     0x7f0a4e56f94f - rustc_borrowck[ca3623405feb84c3]::type_check::type_check
  18:     0x7f0a51e5d3a0 - <rustc_borrowck[ca3623405feb84c3]::root_cx::BorrowCheckRootCtxt>::do_mir_borrowck
  19:     0x7f0a51e58d1b - rustc_borrowck[ca3623405feb84c3]::mir_borrowck
  20:     0x7f0a51e58ae5 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::mir_borrowck::invoke_provider_fn::__rust_begin_short_backtrace
  21:     0x7f0a51410fa9 - rustc_query_impl[7e7093ba90bd9c9b]::execution::try_execute_query::<rustc_data_structures[ff09a7eb65cd8f32]::vec_cache::VecCache<rustc_span[2bd0d1858045488b]::def_id::LocalDefId, rustc_middle[e540907124cae3aa]::query::erase::ErasedData<[u8; 8usize]>, rustc_middle[e540907124cae3aa]::dep_graph::graph::DepNodeIndex>, false>
  22:     0x7f0a5140dfd1 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::mir_borrowck::execute_query_non_incr::__rust_end_short_backtrace
  23:     0x7f0a4fa36712 - <rustc_hir_analysis[cc855c9816ab4089]::collect::type_of::opaque::TaitConstraintLocator>::check
  24:     0x7f0a4fa750d1 - rustc_hir_analysis[cc855c9816ab4089]::collect::type_of::opaque::find_opaque_ty_constraints_for_tait
  25:     0x7f0a52d974d1 - rustc_hir_analysis[cc855c9816ab4089]::collect::type_of::type_of_opaque.cold
  26:     0x7f0a5102c5cd - rustc_query_impl[7e7093ba90bd9c9b]::execution::try_execute_query::<rustc_middle[e540907124cae3aa]::query::caches::DefIdCache<rustc_middle[e540907124cae3aa]::query::erase::ErasedData<[u8; 8usize]>>, false>
  27:     0x7f0a516df98e - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::type_of_opaque::execute_query_non_incr::__rust_end_short_backtrace
  28:     0x7f0a516d96bd - rustc_hir_analysis[cc855c9816ab4089]::collect::type_of::type_of
  29:     0x7f0a512a93a6 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::type_of::invoke_provider_fn::__rust_begin_short_backtrace
  30:     0x7f0a5102c5cd - rustc_query_impl[7e7093ba90bd9c9b]::execution::try_execute_query::<rustc_middle[e540907124cae3aa]::query::caches::DefIdCache<rustc_middle[e540907124cae3aa]::query::erase::ErasedData<[u8; 8usize]>>, false>
  31:     0x7f0a5102c150 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::type_of::execute_query_non_incr::__rust_end_short_backtrace
  32:     0x7f0a517b3442 - <rustc_middle[e540907124cae3aa]::ty::context::TyCtxt as rustc_type_ir[601fa74b34e01e4d]::interner::Interner>::type_of
  33:     0x7f0a521e9dfc - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate> as rustc_type_ir[601fa74b34e01e4d]::search_graph::Delegate>::compute_goal::{closure#0}
  34:     0x7f0a4e07f95d - <rustc_type_ir[601fa74b34e01e4d]::search_graph::SearchGraph<rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate>, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::evaluate_goal::{closure#0}
  35:     0x7f0a51bfed0f - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::evaluate_goal_cold
  36:     0x7f0a51bfc102 - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::evaluate_goal
  37:     0x7f0a51bfbe90 - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::normalize::NormalizationFolder<rustc_infer[8abe19db51b63462]::infer::InferCtxt, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, <rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::normalize<rustc_middle[e540907124cae3aa]::ty::Ty>::{closure#0}>>::normalize_alias_term
  38:     0x7f0a517501be - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::normalize::NormalizationFolder<rustc_infer[8abe19db51b63462]::infer::InferCtxt, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, <rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::normalize<rustc_middle[e540907124cae3aa]::ty::Ty>::{closure#0}> as rustc_type_ir[601fa74b34e01e4d]::fold::FallibleTypeFolder<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::try_fold_ty::{closure#0}
  39:     0x7f0a51dd2971 - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::normalize::<rustc_middle[e540907124cae3aa]::ty::Ty>
  40:     0x7f0a521ebbe6 - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate> as rustc_type_ir[601fa74b34e01e4d]::search_graph::Delegate>::compute_goal::{closure#0}
  41:     0x7f0a4e07f95d - <rustc_type_ir[601fa74b34e01e4d]::search_graph::SearchGraph<rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::search_graph::SearchGraphDelegate<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate>, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::evaluate_goal::{closure#0}
  42:     0x7f0a51bfed0f - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::eval_ctxt::EvalCtxt<rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::evaluate_goal_cold
  43:     0x7f0a51e130c0 - <rustc_trait_selection[c52068a32d15fc1d]::solve::delegate::SolverDelegate as rustc_next_trait_solver[1ee9ab7dec6b0de0]::solve::eval_ctxt::SolverDelegateEvalExt>::evaluate_root_goal
  44:     0x7f0a51e110e9 - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::normalize::NormalizationFolder<rustc_infer[8abe19db51b63462]::infer::InferCtxt, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, rustc_trait_selection[c52068a32d15fc1d]::solve::normalize::normalize_with_universes<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>::{closure#0}>>::normalize_alias_term
  45:     0x7f0a51e11fd9 - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::normalize::NormalizationFolder<rustc_infer[8abe19db51b63462]::infer::InferCtxt, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, rustc_trait_selection[c52068a32d15fc1d]::solve::normalize::normalize_with_universes<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>::{closure#0}> as rustc_type_ir[601fa74b34e01e4d]::fold::FallibleTypeFolder<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::try_fold_ty::{closure#0}
  46:     0x7f0a51e12a71 - <&rustc_middle[e540907124cae3aa]::ty::list::RawList<(), rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg> as rustc_type_ir[601fa74b34e01e4d]::fold::TypeFoldable<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver[1ee9ab7dec6b0de0]::normalize::NormalizationFolder<rustc_infer[8abe19db51b63462]::infer::InferCtxt, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, rustc_trait_selection[c52068a32d15fc1d]::solve::normalize::normalize_with_universes<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>::{closure#0}>>
  47:     0x7f0a51e12028 - <rustc_next_trait_solver[1ee9ab7dec6b0de0]::normalize::NormalizationFolder<rustc_infer[8abe19db51b63462]::infer::InferCtxt, rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, rustc_trait_selection[c52068a32d15fc1d]::solve::normalize::normalize_with_universes<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>::{closure#0}> as rustc_type_ir[601fa74b34e01e4d]::fold::FallibleTypeFolder<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::try_fold_ty::{closure#0}
  48:     0x7f0a517c0977 - <rustc_traits[29c0316ffabda1db]::normalize_erasing_regions::provide::{closure#0} as core[89b49370aeac10c4]::ops::function::FnOnce<(rustc_middle[e540907124cae3aa]::ty::context::TyCtxt, rustc_middle[e540907124cae3aa]::ty::PseudoCanonicalInput<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>)>>::call_once
  49:     0x7f0a51caaf4e - rustc_query_impl[7e7093ba90bd9c9b]::execution::try_execute_query::<rustc_middle[e540907124cae3aa]::query::caches::DefaultCache<rustc_middle[e540907124cae3aa]::ty::PseudoCanonicalInput<rustc_middle[e540907124cae3aa]::ty::generic_args::GenericArg>, rustc_middle[e540907124cae3aa]::query::erase::ErasedData<[u8; 8usize]>>, false>
  50:     0x7f0a51caabc1 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::try_normalize_generic_arg_after_erasing_regions::execute_query_non_incr::__rust_end_short_backtrace
  51:     0x7f0a51ba5c14 - <rustc_middle[e540907124cae3aa]::ty::normalize_erasing_regions::TryNormalizeAfterErasingRegionsFolder as rustc_type_ir[601fa74b34e01e4d]::fold::FallibleTypeFolder<rustc_middle[e540907124cae3aa]::ty::context::TyCtxt>>::try_fold_ty
  52:     0x7f0a51b52bbe - rustc_ty_utils[713c2ad69e59fe09]::layout::layout_of
  53:     0x7f0a51b52791 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::layout_of::invoke_provider_fn::__rust_begin_short_backtrace
  54:     0x7f0a518de9d0 - rustc_query_impl[7e7093ba90bd9c9b]::execution::try_execute_query::<rustc_middle[e540907124cae3aa]::query::caches::DefaultCache<rustc_middle[e540907124cae3aa]::ty::PseudoCanonicalInput<rustc_middle[e540907124cae3aa]::ty::Ty>, rustc_middle[e540907124cae3aa]::query::erase::ErasedData<[u8; 16usize]>>, false>
  55:     0x7f0a510003d2 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::layout_of::execute_query_non_incr::__rust_end_short_backtrace
  56:     0x7f0a51e836f4 - rustc_hir_analysis[cc855c9816ab4089]::check::check::check_item_type
  57:     0x7f0a51e7a8a8 - rustc_hir_analysis[cc855c9816ab4089]::check::wfcheck::check_well_formed
  58:     0x7f0a51e7a889 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::check_well_formed::invoke_provider_fn::__rust_begin_short_backtrace
  59:     0x7f0a51e759f1 - rustc_query_impl[7e7093ba90bd9c9b]::execution::try_execute_query::<rustc_data_structures[ff09a7eb65cd8f32]::vec_cache::VecCache<rustc_span[2bd0d1858045488b]::def_id::LocalDefId, rustc_middle[e540907124cae3aa]::query::erase::ErasedData<[u8; 1usize]>, rustc_middle[e540907124cae3aa]::dep_graph::graph::DepNodeIndex>, false>
  60:     0x7f0a51e75787 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::check_well_formed::execute_query_non_incr::__rust_end_short_backtrace
  61:     0x7f0a51e77466 - rustc_hir_analysis[cc855c9816ab4089]::check::wfcheck::check_type_wf
  62:     0x7f0a51e772db - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::check_type_wf::invoke_provider_fn::__rust_begin_short_backtrace
  63:     0x7f0a521349c6 - rustc_query_impl[7e7093ba90bd9c9b]::execution::try_execute_query::<rustc_middle[e540907124cae3aa]::query::caches::SingleCache<rustc_middle[e540907124cae3aa]::query::erase::ErasedData<[u8; 1usize]>>, false>
  64:     0x7f0a521347a9 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::check_type_wf::execute_query_non_incr::__rust_end_short_backtrace
  65:     0x7f0a5140ab9a - rustc_hir_analysis[cc855c9816ab4089]::check_crate
  66:     0x7f0a5140d0b4 - rustc_interface[e61baabeaeb6667d]::passes::analysis
  67:     0x7f0a521357c7 - rustc_query_impl[7e7093ba90bd9c9b]::execution::try_execute_query::<rustc_middle[e540907124cae3aa]::query::caches::SingleCache<rustc_middle[e540907124cae3aa]::query::erase::ErasedData<[u8; 0usize]>>, false>
  68:     0x7f0a521354a9 - rustc_query_impl[7e7093ba90bd9c9b]::query_impl::analysis::execute_query_non_incr::__rust_end_short_backtrace
  69:     0x7f0a5210a240 - rustc_interface[e61baabeaeb6667d]::interface::run_compiler::<(), rustc_driver_impl[63bd032da2131052]::run_compiler::{closure#0}>::{closure#1}
  70:     0x7f0a5214c9fa - std[603682f233fa450c]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[e61baabeaeb6667d]::util::run_in_thread_with_globals<rustc_interface[e61baabeaeb6667d]::util::run_in_thread_pool_with_globals<rustc_interface[e61baabeaeb6667d]::interface::run_compiler<(), rustc_driver_impl[63bd032da2131052]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  71:     0x7f0a5214c7ad - <std[603682f233fa450c]::thread::lifecycle::spawn_unchecked<rustc_interface[e61baabeaeb6667d]::util::run_in_thread_with_globals<rustc_interface[e61baabeaeb6667d]::util::run_in_thread_pool_with_globals<rustc_interface[e61baabeaeb6667d]::interface::run_compiler<(), rustc_driver_impl[63bd032da2131052]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[89b49370aeac10c4]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  72:     0x7f0a52142cd0 - <std[603682f233fa450c]::sys::thread::unix::Thread>::new::thread_start
  73:     0x7f0a4ba981b9 - <unknown>
  74:     0x7f0a4bb1d21c - <unknown>
  75:                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-06-26T10_24_44-246473.txt` to your bug report

note: rustc 1.98.0-nightly (bd08c9e71 2026-06-25) running on x86_64-unknown-linux-gnu

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

query stack during panic:
#0 [mir_borrowck] borrow-checking `foo`
#1 [type_of_opaque] computing type of opaque `F::{opaque#0}`
#2 [type_of] computing type of `F::{opaque#0}`
#3 [try_normalize_generic_arg_after_erasing_regions] normalizing `Task<F>`
#4 [layout_of] computing layout of `Task<F>`
#5 [check_well_formed] checking that `POOL` is well-formed
#6 [check_type_wf] checking that types are well-formed
#7 [analysis] running analysis passes on crate `code`
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: OpaqueTypeStorage { opaque_types: {OpaqueTypeKey { def_id: DefId(0:10 ~ code[896c]::F::{opaque#0}), args: [] }: ProvisionalHiddenType { span: code.rs:12:5: 12:16 (#0), ty: Alias(Yes, Alias { kind: Opaque { def_id: DefId(0:15 ~ code[896c]::foo::cb::{opaque#0}) }, args: [], .. }) }}, duplicate_entries: [] }
  |
  = note: delayed at /rustc-dev/bd08c9e71874a81670fe3938dbf85148e42c2b96/compiler/rustc_infer/src/infer/mod.rs:369: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: <rustc_infer::infer::InferCtxt as core::ops::drop::Drop>::drop
             5: core::ptr::drop_glue::<rustc_borrowck::BorrowckInferCtxt>
             6: <rustc_borrowck::root_cx::BorrowCheckRootCtxt>::do_mir_borrowck
             7: rustc_borrowck::mir_borrowck
             8: rustc_query_impl::query_impl::mir_borrowck::invoke_provider_fn::__rust_begin_short_backtrace
             9: rustc_query_impl::execution::try_execute_query::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
            10: rustc_query_impl::query_impl::mir_borrowck::execute_query_non_incr::__rust_end_short_backtrace
            11: <rustc_hir_analysis::collect::type_of::opaque::TaitConstraintLocator>::check
            12: rustc_hir_analysis::collect::type_of::opaque::find_opaque_ty_constraints_for_tait
            13: rustc_hir_analysis::collect::type_of::type_of_opaque.cold
            14: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
            15: rustc_query_impl::query_impl::type_of_opaque::execute_query_non_incr::__rust_end_short_backtrace
            16: rustc_hir_analysis::collect::type_of::type_of
            17: rustc_query_impl::query_impl::type_of::invoke_provider_fn::__rust_begin_short_backtrace
            18: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
            19: rustc_query_impl::query_impl::type_of::execute_query_non_incr::__rust_end_short_backtrace
            20: <rustc_middle::ty::context::TyCtxt as rustc_type_ir::interner::Interner>::type_of
            21: <rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate> as rustc_type_ir::search_graph::Delegate>::compute_goal::{closure#0}
            22: <rustc_type_ir::search_graph::SearchGraph<rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate>, rustc_middle::ty::context::TyCtxt>>::evaluate_goal::{closure#0}
            23: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::evaluate_goal_cold
            24: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::evaluate_goal
            25: <rustc_next_trait_solver::normalize::NormalizationFolder<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt, <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::normalize<rustc_middle::ty::Ty>::{closure#0}>>::normalize_alias_term
            26: <rustc_next_trait_solver::normalize::NormalizationFolder<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt, <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::normalize<rustc_middle::ty::Ty>::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder<rustc_middle::ty::context::TyCtxt>>::try_fold_ty::{closure#0}
            27: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::normalize::<rustc_middle::ty::Ty>
            28: <rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate> as rustc_type_ir::search_graph::Delegate>::compute_goal::{closure#0}
            29: <rustc_type_ir::search_graph::SearchGraph<rustc_next_trait_solver::solve::search_graph::SearchGraphDelegate<rustc_trait_selection::solve::delegate::SolverDelegate>, rustc_middle::ty::context::TyCtxt>>::evaluate_goal::{closure#0}
            30: <rustc_next_trait_solver::solve::eval_ctxt::EvalCtxt<rustc_trait_selection::solve::delegate::SolverDelegate, rustc_middle::ty::context::TyCtxt>>::evaluate_goal_cold
            31: <rustc_trait_selection::solve::delegate::SolverDelegate as rustc_next_trait_solver::solve::eval_ctxt::SolverDelegateEvalExt>::evaluate_root_goal
            32: <rustc_next_trait_solver::normalize::NormalizationFolder<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt, rustc_trait_selection::solve::normalize::normalize_with_universes<rustc_middle::ty::generic_args::GenericArg>::{closure#0}>>::normalize_alias_term
            33: <rustc_next_trait_solver::normalize::NormalizationFolder<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt, rustc_trait_selection::solve::normalize::normalize_with_universes<rustc_middle::ty::generic_args::GenericArg>::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder<rustc_middle::ty::context::TyCtxt>>::try_fold_ty::{closure#0}
            34: <&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable<rustc_middle::ty::context::TyCtxt>>::try_fold_with::<rustc_next_trait_solver::normalize::NormalizationFolder<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt, rustc_trait_selection::solve::normalize::normalize_with_universes<rustc_middle::ty::generic_args::GenericArg>::{closure#0}>>
            35: <rustc_next_trait_solver::normalize::NormalizationFolder<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt, rustc_trait_selection::solve::normalize::normalize_with_universes<rustc_middle::ty::generic_args::GenericArg>::{closure#0}> as rustc_type_ir::fold::FallibleTypeFolder<rustc_middle::ty::context::TyCtxt>>::try_fold_ty::{closure#0}
            36: <rustc_traits::normalize_erasing_regions::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_middle::ty::PseudoCanonicalInput<rustc_middle::ty::generic_args::GenericArg>)>>::call_once
            37: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::DefaultCache<rustc_middle::ty::PseudoCanonicalInput<rustc_middle::ty::generic_args::GenericArg>, rustc_middle::query::erase::ErasedData<[u8; 8]>>, false>
            38: rustc_query_impl::query_impl::try_normalize_generic_arg_after_erasing_regions::execute_query_non_incr::__rust_end_short_backtrace
            39: <rustc_middle::ty::normalize_erasing_regions::TryNormalizeAfterErasingRegionsFolder as rustc_type_ir::fold::FallibleTypeFolder<rustc_middle::ty::context::TyCtxt>>::try_fold_ty
            40: rustc_ty_utils::layout::layout_of
            41: rustc_query_impl::query_impl::layout_of::invoke_provider_fn::__rust_begin_short_backtrace
            42: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::DefaultCache<rustc_middle::ty::PseudoCanonicalInput<rustc_middle::ty::Ty>, rustc_middle::query::erase::ErasedData<[u8; 16]>>, false>
            43: rustc_query_impl::query_impl::layout_of::execute_query_non_incr::__rust_end_short_backtrace
            44: rustc_hir_analysis::check::check::check_item_type
            45: rustc_hir_analysis::check::wfcheck::check_well_formed
            46: rustc_query_impl::query_impl::check_well_formed::invoke_provider_fn::__rust_begin_short_backtrace
            47: rustc_query_impl::execution::try_execute_query::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 1]>, rustc_middle::dep_graph::graph::DepNodeIndex>, false>
            48: rustc_query_impl::query_impl::check_well_formed::execute_query_non_incr::__rust_end_short_backtrace
            49: rustc_hir_analysis::check::wfcheck::check_type_wf
            50: rustc_query_impl::query_impl::check_type_wf::invoke_provider_fn::__rust_begin_short_backtrace
            51: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 1]>>, false>
            52: rustc_query_impl::query_impl::check_type_wf::execute_query_non_incr::__rust_end_short_backtrace
            53: rustc_hir_analysis::check_crate
            54: rustc_interface::passes::analysis
            55: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 0]>>, false>
            56: rustc_query_impl::query_impl::analysis::execute_query_non_incr::__rust_end_short_backtrace
            57: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}
            58: 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}, ()>
            59: <std::thread::lifecycle::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}
            60: <std::sys::thread::unix::Thread>::new::thread_start
            61: <unknown>
            62: <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 `/home/matthias/vcs/github/CRED/rustc-ice-2026-06-26T10_24_44-246473.txt` to your bug report

note: rustc 1.98.0-nightly (bd08c9e71 2026-06-25) running on x86_64-unknown-linux-gnu

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

query stack during panic:
end of query stack

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.F-type_alias_impl_trait`#[feature(type_alias_impl_trait)]`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.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Type

No type

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions