Skip to content

ICE: Panic when using constant from associated type trait impl #144547

@miki4625

Description

@miki4625

Code playground

trait UnderlyingImpl<const MAX_SIZE: usize> {
    type InfoType: LevelInfo;
    type SupportedArray<T>;
}

trait LevelInfo {
    const SUPPORTED_SLOTS: usize;
}

struct Info;

impl LevelInfo for Info {
    const SUPPORTED_SLOTS: usize = 1;
}

struct SomeImpl;

impl<const MAX_SIZE: usize> UnderlyingImpl<MAX_SIZE> for SomeImpl {
    type InfoType = Info;
    // This line makes compiler panic
    type SupportedArray<T> = [T; <Self::InfoType as LevelInfo>::SUPPORTED_SLOTS];
    // But this works
    //type SupportedArray<T> = [T; <Info as LevelInfo>::SUPPORTED_SLOTS];
}

Meta (local)

rustc --version --verbose:
Same behavior on playground (both stable and nightly)

rustc 1.90.0-nightly (8f08b3a32 2025-07-18)
binary: rustc
commit-hash: 8f08b3a32478b8d0507732800ecb548a76e0fd0c
commit-date: 2025-07-18
host: x86_64-pc-windows-msvc
release: 1.90.0-nightly
LLVM version: 20.1.8
Error output

Compiling playground v0.0.1 (/playground)

thread 'rustc' panicked at compiler/rustc_middle/src/ty/sty.rs:364:36:
called `Option::unwrap()` on a `None` value
stack backtrace:
   0:     0x7924dcd46543 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h46a716bba2450163
   1:     0x7924dd405947 - core::fmt::write::h275e5980d7008551
   2:     0x7924de4c16d1 - std::io::Write::write_fmt::h561a66a0340b6995
   3:     0x7924dcd463a2 - std::sys::backtrace::BacktraceLock::print::hafb9d5969adc39a0
   4:     0x7924dcd49f9a - std::panicking::default_hook::{{closure}}::hae2e97a5c4b2b777
   5:     0x7924dcd49b1f - std::panicking::default_hook::h3db1b505cfc4eb79
   6:     0x7924dbd75b93 - std[61bb86a81f0491]::panicking::update_hook::<alloc[7c55b5a5cf9e3c5f]::boxed::Box<rustc_driver_impl[b7d73271a09ede7d]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7924dcd4a813 - std::panicking::rust_panic_with_hook::h409da73ddef13937
   8:     0x7924dcd4a4d6 - std::panicking::begin_panic_handler::{{closure}}::h159b61b27f96a9c2
   9:     0x7924dcd46a09 - std::sys::backtrace::__rust_end_short_backtrace::h5b56844d75e766fc
  10:     0x7924dcd4a1cd - __rustc[4794b31dd7191200]::rust_begin_unwind
  11:     0x7924d9685620 - core::panicking::panic_fmt::hc8737e8cca20a7c8
  12:     0x7924d9689ddc - core::panicking::panic::h4a11c031239f36a8
  13:     0x7924d9685f99 - core::option::unwrap_failed::h62317944fa5dc382
  14:     0x7924df135866 - <rustc_middle[1134768a56a896b4]::ty::sty::ParamConst>::find_ty_from_env.cold
  15:     0x7924dddc9031 - <rustc_trait_selection[cbbc305c14e6b9fb]::traits::fulfill::FulfillProcessor as rustc_data_structures[e24569e090b577b3]::obligation_forest::ObligationProcessor>::process_obligation
  16:     0x7924dd407566 - <rustc_data_structures[e24569e090b577b3]::obligation_forest::ObligationForest<rustc_trait_selection[cbbc305c14e6b9fb]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[cbbc305c14e6b9fb]::traits::fulfill::FulfillProcessor>
  17:     0x7924dd7d8f23 - rustc_hir_typeck[69b4494f2e6af28b]::typeck_with_inspect::{closure#0}
  18:     0x7924dd7d7ab6 - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>>
  19:     0x7924dd7c9366 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_data_structures[e24569e090b577b3]::vec_cache::VecCache<rustc_span[1f7aec696a0836ce]::def_id::LocalDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[48caa8a8a4cfcb68]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  20:     0x7924dd7c8dd2 - rustc_query_impl[6f0ca6887c150a69]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  21:     0x7924ddbeebc1 - rustc_mir_build[66235fdd4417f78a]::thir::pattern::check_match::check_match
  22:     0x7924ddbee459 - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 1usize]>>
  23:     0x7924ddc16665 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_data_structures[e24569e090b577b3]::vec_cache::VecCache<rustc_span[1f7aec696a0836ce]::def_id::LocalDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[48caa8a8a4cfcb68]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  24:     0x7924ddc162a1 - rustc_query_impl[6f0ca6887c150a69]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace
  25:     0x7924dd81a788 - rustc_mir_build[66235fdd4417f78a]::builder::build_mir
  26:     0x7924dd409aab - rustc_mir_transform[bc4f92cb7c061fd1]::mir_built
  27:     0x7924dd409a65 - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>>
  28:     0x7924dd7c9366 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_data_structures[e24569e090b577b3]::vec_cache::VecCache<rustc_span[1f7aec696a0836ce]::def_id::LocalDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[48caa8a8a4cfcb68]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  29:     0x7924dd7c8e92 - rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  30:     0x7924de1a6695 - rustc_mir_transform[bc4f92cb7c061fd1]::mir_const_qualif
  31:     0x7924de1a65a5 - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_const_qualif::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 4usize]>>
  32:     0x7924de1a59fe - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_query_system[48caa8a8a4cfcb68]::query::caches::DefIdCache<rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 4usize]>>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  33:     0x7924de1a574f - rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_const_qualif::get_query_non_incr::__rust_end_short_backtrace
  34:     0x7924dac614b2 - rustc_mir_transform[bc4f92cb7c061fd1]::mir_promoted
  35:     0x7924dd8bd792 - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 16usize]>>
  36:     0x7924dd8bda24 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_data_structures[e24569e090b577b3]::vec_cache::VecCache<rustc_span[1f7aec696a0836ce]::def_id::LocalDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[48caa8a8a4cfcb68]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  37:     0x7924dd8bd692 - rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  38:     0x7924dd7ca66b - rustc_borrowck[177ef636edd0ce33]::mir_borrowck
  39:     0x7924dd7ca59f - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>>
  40:     0x7924dd7c9366 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_data_structures[e24569e090b577b3]::vec_cache::VecCache<rustc_span[1f7aec696a0836ce]::def_id::LocalDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[48caa8a8a4cfcb68]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  41:     0x7924dd7c8d12 - rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  42:     0x7924dd6b5e45 - rustc_mir_transform[bc4f92cb7c061fd1]::mir_drops_elaborated_and_const_checked
  43:     0x7924dd6b5535 - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_drops_elaborated_and_const_checked::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>>
  44:     0x7924dd7c9366 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_data_structures[e24569e090b577b3]::vec_cache::VecCache<rustc_span[1f7aec696a0836ce]::def_id::LocalDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[48caa8a8a4cfcb68]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  45:     0x7924dd7c8c5c - rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_drops_elaborated_and_const_checked::get_query_non_incr::__rust_end_short_backtrace
  46:     0x7924dd892118 - rustc_mir_transform[bc4f92cb7c061fd1]::mir_for_ctfe
  47:     0x7924dd891f4d - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_for_ctfe::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>>
  48:     0x7924dd8800bf - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_query_system[48caa8a8a4cfcb68]::query::caches::DefIdCache<rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  49:     0x7924ddd677a2 - rustc_query_impl[6f0ca6887c150a69]::query_impl::mir_for_ctfe::get_query_non_incr::__rust_end_short_backtrace
  50:     0x7924ddd678d0 - <rustc_const_eval[1f8ce8110e3e9be6]::interpret::eval_context::InterpCx<rustc_const_eval[1f8ce8110e3e9be6]::const_eval::machine::CompileTimeMachine>>::load_mir
  51:     0x7924ddd6876b - rustc_const_eval[1f8ce8110e3e9be6]::const_eval::eval_queries::eval_to_allocation_raw_provider
  52:     0x7924ddd68010 - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::eval_to_allocation_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 24usize]>>
  53:     0x7924ddd55e98 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_query_system[48caa8a8a4cfcb68]::query::caches::DefaultCache<rustc_middle[1134768a56a896b4]::ty::PseudoCanonicalInput<rustc_middle[1134768a56a896b4]::mir::interpret::GlobalId>, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  54:     0x7924ddd55a4b - rustc_query_impl[6f0ca6887c150a69]::query_impl::eval_to_allocation_raw::get_query_non_incr::__rust_end_short_backtrace
  55:     0x7924ddd33650 - rustc_const_eval[1f8ce8110e3e9be6]::const_eval::valtrees::eval_to_valtree
  56:     0x7924ddd333d4 - <rustc_const_eval[1f8ce8110e3e9be6]::provide::{closure#0} as core[105cb658ab12d76f]::ops::function::FnOnce<(rustc_middle[1134768a56a896b4]::ty::context::TyCtxt, rustc_middle[1134768a56a896b4]::ty::PseudoCanonicalInput<rustc_middle[1134768a56a896b4]::mir::interpret::GlobalId>)>>::call_once
  57:     0x7924ddd3337e - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::eval_to_valtree::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 24usize]>>
  58:     0x7924ddd33337 - <rustc_query_impl[6f0ca6887c150a69]::query_impl::eval_to_valtree::dynamic_query::{closure#2} as core[105cb658ab12d76f]::ops::function::FnOnce<(rustc_middle[1134768a56a896b4]::ty::context::TyCtxt, rustc_middle[1134768a56a896b4]::ty::PseudoCanonicalInput<rustc_middle[1134768a56a896b4]::mir::interpret::GlobalId>)>>::call_once
  59:     0x7924ddd55f7b - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_query_system[48caa8a8a4cfcb68]::query::caches::DefaultCache<rustc_middle[1134768a56a896b4]::ty::PseudoCanonicalInput<rustc_middle[1134768a56a896b4]::mir::interpret::GlobalId>, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  60:     0x7924ddd55955 - rustc_query_impl[6f0ca6887c150a69]::query_impl::eval_to_valtree::get_query_non_incr::__rust_end_short_backtrace
  61:     0x7924dde83600 - <rustc_middle[1134768a56a896b4]::ty::context::TyCtxt>::const_eval_global_id_for_typeck
  62:     0x7924dde83142 - <rustc_middle[1134768a56a896b4]::ty::context::TyCtxt>::const_eval_resolve_for_typeck
  63:     0x7924dd8db408 - rustc_trait_selection[cbbc305c14e6b9fb]::traits::try_evaluate_const
  64:     0x7924dd8dabb4 - <rustc_trait_selection[cbbc305c14e6b9fb]::traits::normalize::AssocTypeNormalizer as rustc_type_ir[59256336525b79e2]::fold::TypeFolder<rustc_middle[1134768a56a896b4]::ty::context::TyCtxt>>::fold_const
  65:     0x7924dd5cb191 - <rustc_middle[1134768a56a896b4]::ty::Ty as rustc_type_ir[59256336525b79e2]::fold::TypeSuperFoldable<rustc_middle[1134768a56a896b4]::ty::context::TyCtxt>>::super_fold_with::<rustc_trait_selection[cbbc305c14e6b9fb]::traits::normalize::AssocTypeNormalizer>
  66:     0x7924dd5d0790 - rustc_trait_selection[cbbc305c14e6b9fb]::traits::project::normalize_projection_term
  67:     0x7924dd5c9e34 - <rustc_trait_selection[cbbc305c14e6b9fb]::traits::normalize::AssocTypeNormalizer as rustc_type_ir[59256336525b79e2]::fold::TypeFolder<rustc_middle[1134768a56a896b4]::ty::context::TyCtxt>>::fold_ty
  68:     0x7924ddb7960a - <&rustc_middle[1134768a56a896b4]::ty::list::RawList<(), rustc_middle[1134768a56a896b4]::ty::generic_args::GenericArg> as rustc_type_ir[59256336525b79e2]::fold::TypeFoldable<rustc_middle[1134768a56a896b4]::ty::context::TyCtxt>>::fold_with::<rustc_trait_selection[cbbc305c14e6b9fb]::traits::normalize::AssocTypeNormalizer>
  69:     0x7924ddb79464 - <rustc_trait_selection[cbbc305c14e6b9fb]::traits::normalize::AssocTypeNormalizer as rustc_type_ir[59256336525b79e2]::fold::TypeFolder<rustc_middle[1134768a56a896b4]::ty::context::TyCtxt>>::fold_predicate
  70:     0x7924ddb73953 - rustc_hir_analysis[5a87eb6962d34b42]::check::compare_impl_item::check_type_bounds
  71:     0x7924ddb7fb64 - rustc_hir_analysis[5a87eb6962d34b42]::check::compare_impl_item::compare_impl_item
  72:     0x7924ddb7d2cb - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::compare_impl_item::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 1usize]>>
  73:     0x7924ddc16665 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_data_structures[e24569e090b577b3]::vec_cache::VecCache<rustc_span[1f7aec696a0836ce]::def_id::LocalDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[48caa8a8a4cfcb68]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  74:     0x7924ddc16161 - rustc_query_impl[6f0ca6887c150a69]::query_impl::compare_impl_item::get_query_non_incr::__rust_end_short_backtrace
  75:     0x7924dd9cc62c - rustc_hir_analysis[5a87eb6962d34b42]::check::check::check_item_type
  76:     0x7924ddc1886e - rustc_hir_analysis[5a87eb6962d34b42]::check::wfcheck::check_well_formed
  77:     0x7924ddc1704b - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 1usize]>>
  78:     0x7924ddc168f1 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_data_structures[e24569e090b577b3]::vec_cache::VecCache<rustc_span[1f7aec696a0836ce]::def_id::LocalDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[48caa8a8a4cfcb68]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  79:     0x7924ddc163e6 - rustc_query_impl[6f0ca6887c150a69]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  80:     0x7924ddc13965 - rustc_hir_analysis[5a87eb6962d34b42]::check::wfcheck::check_mod_type_wf
  81:     0x7924ddc1375f - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 1usize]>>
  82:     0x7924de3eda84 - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_query_system[48caa8a8a4cfcb68]::query::caches::DefaultCache<rustc_span[1f7aec696a0836ce]::def_id::LocalModDefId, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  83:     0x7924de3ed811 - rustc_query_impl[6f0ca6887c150a69]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
  84:     0x7924dd7c6f72 - rustc_hir_analysis[5a87eb6962d34b42]::check_crate
  85:     0x7924ddde0237 - rustc_interface[a43b584b4c4124b4]::passes::run_required_analyses
  86:     0x7924de2edb5e - rustc_interface[a43b584b4c4124b4]::passes::analysis
  87:     0x7924de2edb35 - rustc_query_impl[6f0ca6887c150a69]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6f0ca6887c150a69]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 0usize]>>
  88:     0x7924de2efc3a - rustc_query_system[48caa8a8a4cfcb68]::query::plumbing::try_execute_query::<rustc_query_impl[6f0ca6887c150a69]::DynamicConfig<rustc_query_system[48caa8a8a4cfcb68]::query::caches::SingleCache<rustc_middle[1134768a56a896b4]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[6f0ca6887c150a69]::plumbing::QueryCtxt, false>
  89:     0x7924de2ef90f - rustc_query_impl[6f0ca6887c150a69]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  90:     0x7924de5aa0c7 - rustc_interface[a43b584b4c4124b4]::passes::create_and_enter_global_ctxt::<core[105cb658ab12d76f]::option::Option<rustc_interface[a43b584b4c4124b4]::queries::Linker>, rustc_driver_impl[b7d73271a09ede7d]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
  91:     0x7924de4fe966 - rustc_interface[a43b584b4c4124b4]::interface::run_compiler::<(), rustc_driver_impl[b7d73271a09ede7d]::run_compiler::{closure#0}>::{closure#1}
  92:     0x7924de4b523e - std[61bb86a81f0491]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[a43b584b4c4124b4]::util::run_in_thread_with_globals<rustc_interface[a43b584b4c4124b4]::util::run_in_thread_pool_with_globals<rustc_interface[a43b584b4c4124b4]::interface::run_compiler<(), rustc_driver_impl[b7d73271a09ede7d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  93:     0x7924de4b56b4 - <<std[61bb86a81f0491]::thread::Builder>::spawn_unchecked_<rustc_interface[a43b584b4c4124b4]::util::run_in_thread_with_globals<rustc_interface[a43b584b4c4124b4]::util::run_in_thread_pool_with_globals<rustc_interface[a43b584b4c4124b4]::interface::run_compiler<(), rustc_driver_impl[b7d73271a09ede7d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[105cb658ab12d76f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  94:     0x7924de4b6aab - std::sys::pal::unix::thread::Thread::new::thread_start::h1822d22fde68314f
  95:     0x7924d828aaa4 - <unknown>
  96:     0x7924d8317a34 - clone
  97:                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: rustc 1.88.0 (6b00bc388 2025-06-23) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [typeck] type-checking `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#1 [check_match] match-checking `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
... and 12 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
error: could not compile `playground` (lib)

Caused by:
  process didn't exit successfully: `/playground/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc --crate-name playground --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2 --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=88d75c911cfddd04 -C extra-filename=-013ef0dffb93ce85 --out-dir /playground/target/debug/deps -L dependency=/playground/target/debug/deps [...] (deleted bcs 65536 character limit)` (exit status: 101)

Backtrace

thread 'rustc' panicked at compiler/rustc_middle/src/ty/sty.rs:364:36:
called `Option::unwrap()` on a `None` value
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::panic
   3: core::option::unwrap_failed
   4: <rustc_middle::ty::sty::ParamConst>::find_ty_from_env.cold
   5: <rustc_trait_selection::traits::fulfill::FulfillProcessor as rustc_data_structures::obligation_forest::ObligationProcessor>::process_obligation
   6: <rustc_data_structures::obligation_forest::ObligationForest<rustc_trait_selection::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection::traits::fulfill::FulfillProcessor>
   7: rustc_hir_typeck::typeck_with_inspect::{closure#0}
      [... omitted 1 frame ...]
   8: rustc_mir_build::thir::pattern::check_match::check_match
      [... omitted 1 frame ...]
   9: rustc_mir_build::builder::build_mir
  10: rustc_mir_transform::mir_built
      [... omitted 1 frame ...]
  11: rustc_mir_transform::mir_const_qualif
      [... omitted 1 frame ...]
  12: rustc_mir_transform::mir_promoted
      [... omitted 1 frame ...]
  13: rustc_borrowck::mir_borrowck
      [... omitted 1 frame ...]
  14: rustc_mir_transform::mir_drops_elaborated_and_const_checked
      [... omitted 1 frame ...]
  15: rustc_mir_transform::mir_for_ctfe
      [... omitted 1 frame ...]
  16: <rustc_const_eval::interpret::eval_context::InterpCx<rustc_const_eval::const_eval::machine::CompileTimeMachine>>::load_mir
  17: rustc_const_eval::const_eval::eval_queries::eval_to_allocation_raw_provider
      [... omitted 1 frame ...]
  18: rustc_const_eval::const_eval::valtrees::eval_to_valtree
  19: <rustc_const_eval::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_middle::ty::PseudoCanonicalInput<rustc_middle::mir::interpret::GlobalId>)>>::call_once
      [... omitted 2 frames ...]
  20: <rustc_middle::ty::context::TyCtxt>::const_eval_global_id_for_typeck
  21: <rustc_middle::ty::context::TyCtxt>::const_eval_resolve_for_typeck
  22: rustc_trait_selection::traits::try_evaluate_const
  23: <rustc_trait_selection::traits::normalize::AssocTypeNormalizer as rustc_type_ir::fold::TypeFolder<rustc_middle::ty::context::TyCtxt>>::fold_const
  24: <rustc_middle::ty::Ty as rustc_type_ir::fold::TypeSuperFoldable<rustc_middle::ty::context::TyCtxt>>::super_fold_with::<rustc_trait_selection::traits::normalize::AssocTypeNormalizer>
  25: rustc_trait_selection::traits::project::normalize_projection_term
  26: <rustc_trait_selection::traits::normalize::AssocTypeNormalizer as rustc_type_ir::fold::TypeFolder<rustc_middle::ty::context::TyCtxt>>::fold_ty
  27: <&rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg> as rustc_type_ir::fold::TypeFoldable<rustc_middle::ty::context::TyCtxt>>::fold_with::<rustc_trait_selection::traits::normalize::AssocTypeNormalizer>
  28: <rustc_trait_selection::traits::normalize::AssocTypeNormalizer as rustc_type_ir::fold::TypeFolder<rustc_middle::ty::context::TyCtxt>>::fold_predicate
  29: rustc_hir_analysis::check::compare_impl_item::check_type_bounds
  30: rustc_hir_analysis::check::compare_impl_item::compare_impl_item
      [... omitted 1 frame ...]
  31: rustc_hir_analysis::check::check::check_item_type
  32: rustc_hir_analysis::check::wfcheck::check_well_formed
      [... omitted 1 frame ...]
  33: rustc_hir_analysis::check::wfcheck::check_mod_type_wf
      [... omitted 1 frame ...]
  34: rustc_hir_analysis::check_crate
  35: rustc_interface::passes::run_required_analyses
  36: rustc_interface::passes::analysis
      [... omitted 1 frame ...]
  37: 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}::{closure#0}
  38: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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 x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [typeck] type-checking `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#1 [check_match] match-checking `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#2 [mir_built] building MIR for `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#3 [mir_const_qualif] const checking `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#4 [mir_promoted] promoting constants in MIR for `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#5 [mir_borrowck] borrow-checking `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#6 [mir_drops_elaborated_and_const_checked] elaborating drops for `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#7 [mir_for_ctfe] caching mir of `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}` for CTFE
#8 [eval_to_allocation_raw] const-evaluating + checking `<impl at src/lib.rs:18:1: 18:66>::SupportedArray::{constant#0}`
#9 [eval_to_valtree] evaluating type-level constant
#10 [compare_impl_item] checking assoc item `<impl at src/lib.rs:18:1: 18:66>::SupportedArray` is compatible with trait definition
#11 [check_well_formed] checking that `<impl at src/lib.rs:18:1: 18:66>` is well-formed
#12 [check_mod_type_wf] checking that types are well-formed in top-level module
#13 [analysis] running analysis passes on this crate
end of query stack
error: could not compile `playground` (lib)

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-mediumMedium priorityS-has-bisectionStatus: A bisection has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions