Skip to content

[ICE]: called Result::unwrap_err() on an Ok value during specialization graph building #154244

@PaulWagener

Description

@PaulWagener

Code

I don't have the resources to create a minimal example right now, but the error points to this conversion in nalgebra 0.32.6

Meta

rustc --version --verbose:

rustc 1.96.0-nightly (562dee482 2026-03-21)
binary: rustc
commit-hash: 562dee4820c458d823175268e41601d4c060588a
commit-date: 2026-03-21
host: aarch64-apple-darwin
release: 1.96.0-nightly
LLVM version: 22.1.0

Error output

thread 'rustc' panicked at /rustc-dev/562dee4820c458d823175268e41601d4c060588a/compiler/rustc_infer/src/infer/relate/generalize.rs:294:44:
called `Result::unwrap_err()` on an `Ok` value: base::array_storage::ArrayStorage<base::matrix::Matrix<?20t, base::dimension::Const<?0c>, base::dimension::Const<1_usize>, ?21t>, ?0c, 1_usize>

query stack during panic:
#0 [specialization_graph_of] building specialization graph of trait `core::convert::From`
#1 [coherent_trait] coherence checking all impls of trait `core::convert::From`
#2 [check_well_formed] checking that `base::conversion::<impl at /Users/paul/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nalgebra-0.32.6/src/base/conversion.rs:113:1: 113:63>` is well-formed
#3 [check_type_wf] checking that types are well-formed
#4 [analysis] running analysis passes on crate `nalgebra`
end of query stack

Backtrace

   0:        0x110253978 - <std[d7a18b26e6c86cc1]::backtrace::Backtrace>::create
   1:        0x10e0df150 - std[d7a18b26e6c86cc1]::panicking::update_hook::<alloc[d9055680ac61405]::boxed::Box<rustc_driver_impl[6ba38dc3c72a775b]::install_ice_hook::{closure#1}>>::{closure#0}
   2:        0x110264fd4 - std[d7a18b26e6c86cc1]::panicking::panic_with_hook
   3:        0x110248ec0 - std[d7a18b26e6c86cc1]::panicking::panic_handler::{closure#0}
   4:        0x11023d8a8 - std[d7a18b26e6c86cc1]::sys::backtrace::__rust_end_short_backtrace::<std[d7a18b26e6c86cc1]::panicking::panic_handler::{closure#0}, !>
   5:        0x11024a490 - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind
   6:        0x1132856f8 - core[235390bb17b972d6]::panicking::panic_fmt
   7:        0x113285460 - core[235390bb17b972d6]::result::unwrap_failed
   8:        0x10fd8bd04 - <rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt>::generalize::<rustc_middle[66124c0844e3b1fc]::ty::Ty, rustc_type_ir[d8766bceedabe914]::ty_kind::TyVid>
   9:        0x10fd8be48 - <rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt>::instantiate_ty_var::<rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>
  10:        0x10ffaedac - <rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt> as rustc_type_ir[d8766bceedabe914]::relate::TypeRelation<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::tys
  11:        0x10fe38c4c - <rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg as rustc_type_ir[d8766bceedabe914]::relate::Relate<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::relate::<rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>
  12:        0x10fe46584 - <core[235390bb17b972d6]::result::Result<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg, rustc_type_ir[d8766bceedabe914]::error::TypeError<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>> as rustc_type_ir[d8766bceedabe914]::interner::CollectAndApply<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg, &rustc_middle[66124c0844e3b1fc]::ty::list::RawList<(), rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>>::collect_and_apply::<core[235390bb17b972d6]::iter::adapters::map::Map<core[235390bb17b972d6]::iter::adapters::zip::Zip<core[235390bb17b972d6]::iter::adapters::copied::Copied<core[235390bb17b972d6]::slice::iter::Iter<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>, core[235390bb17b972d6]::iter::adapters::copied::Copied<core[235390bb17b972d6]::slice::iter::Iter<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>>, rustc_type_ir[d8766bceedabe914]::relate::relate_args_invariantly<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt, rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::{closure#0}>, <rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>::mk_args_from_iter<core[235390bb17b972d6]::iter::adapters::map::Map<core[235390bb17b972d6]::iter::adapters::zip::Zip<core[235390bb17b972d6]::iter::adapters::copied::Copied<core[235390bb17b972d6]::slice::iter::Iter<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>, core[235390bb17b972d6]::iter::adapters::copied::Copied<core[235390bb17b972d6]::slice::iter::Iter<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>>, rustc_type_ir[d8766bceedabe914]::relate::relate_args_invariantly<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt, rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::{closure#0}>, core[235390bb17b972d6]::result::Result<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg, rustc_type_ir[d8766bceedabe914]::error::TypeError<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>>::{closure#0}>
  13:        0x10fe32948 - <rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt> as rustc_type_ir[d8766bceedabe914]::relate::TypeRelation<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::relate_ty_args::<rustc_type_ir[d8766bceedabe914]::relate::structurally_relate_tys<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt, rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::{closure#0}::{closure#0}>
  14:        0x10ffaf704 - <rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt> as rustc_type_ir[d8766bceedabe914]::relate::TypeRelation<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::tys
  15:        0x10fd8bebc - <rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt>::instantiate_ty_var::<rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>
  16:        0x10ffaedac - <rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt> as rustc_type_ir[d8766bceedabe914]::relate::TypeRelation<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::tys
  17:        0x10ffaf7e8 - <rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt> as rustc_type_ir[d8766bceedabe914]::relate::TypeRelation<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::tys
  18:        0x10fe38c4c - <rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg as rustc_type_ir[d8766bceedabe914]::relate::Relate<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::relate::<rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>
  19:        0x10fe462a4 - <core[235390bb17b972d6]::result::Result<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg, rustc_type_ir[d8766bceedabe914]::error::TypeError<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>> as rustc_type_ir[d8766bceedabe914]::interner::CollectAndApply<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg, &rustc_middle[66124c0844e3b1fc]::ty::list::RawList<(), rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>>::collect_and_apply::<core[235390bb17b972d6]::iter::adapters::map::Map<core[235390bb17b972d6]::iter::adapters::zip::Zip<core[235390bb17b972d6]::iter::adapters::copied::Copied<core[235390bb17b972d6]::slice::iter::Iter<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>, core[235390bb17b972d6]::iter::adapters::copied::Copied<core[235390bb17b972d6]::slice::iter::Iter<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>>, rustc_type_ir[d8766bceedabe914]::relate::relate_args_invariantly<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt, rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::{closure#0}>, <rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>::mk_args_from_iter<core[235390bb17b972d6]::iter::adapters::map::Map<core[235390bb17b972d6]::iter::adapters::zip::Zip<core[235390bb17b972d6]::iter::adapters::copied::Copied<core[235390bb17b972d6]::slice::iter::Iter<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>, core[235390bb17b972d6]::iter::adapters::copied::Copied<core[235390bb17b972d6]::slice::iter::Iter<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg>>>, rustc_type_ir[d8766bceedabe914]::relate::relate_args_invariantly<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt, rustc_type_ir[d8766bceedabe914]::relate::solver_relating::SolverRelating<rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt, rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>::{closure#0}>, core[235390bb17b972d6]::result::Result<rustc_middle[66124c0844e3b1fc]::ty::generic_args::GenericArg, rustc_type_ir[d8766bceedabe914]::error::TypeError<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>>::{closure#0}>
  20:        0x10fe21afc - <rustc_infer[468b48bfafe9ccbb]::infer::InferCtxt as rustc_type_ir[d8766bceedabe914]::relate::solver_relating::RelateExt>::relate::<rustc_type_ir[d8766bceedabe914]::predicate::ExistentialTraitRef<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>
  21:        0x10fd9a348 - <rustc_infer[468b48bfafe9ccbb]::infer::at::At>::eq_trace::<rustc_type_ir[d8766bceedabe914]::predicate::TraitRef<rustc_middle[66124c0844e3b1fc]::ty::context::TyCtxt>>
  22:        0x10ff7b384 - rustc_trait_selection[60d0907a962eb5c9]::traits::coherence::equate_impl_headers
  23:        0x10ff7cdf4 - rustc_trait_selection[60d0907a962eb5c9]::traits::coherence::overlap
  24:        0x10ff7b124 - rustc_trait_selection[60d0907a962eb5c9]::traits::coherence::overlapping_impls
  25:        0x10fffb5b8 - <rustc_middle[66124c0844e3b1fc]::traits::specialization_graph::Children as rustc_trait_selection[60d0907a962eb5c9]::traits::specialize::specialization_graph::ChildrenExt>::insert
  26:        0x10fffeaf8 - <rustc_middle[66124c0844e3b1fc]::traits::specialization_graph::Graph as rustc_trait_selection[60d0907a962eb5c9]::traits::specialize::specialization_graph::GraphExt>::insert
  27:        0x10ff5e488 - rustc_trait_selection[60d0907a962eb5c9]::traits::specialize::specialization_graph_provider
  28:        0x10f70e5d4 - rustc_query_impl[9175953c27275e42]::execution::try_execute_query::<rustc_middle[66124c0844e3b1fc]::query::caches::DefIdCache<rustc_middle[66124c0844e3b1fc]::query::erase::ErasedData<[u8; 8usize]>>, false>
  29:        0x10f89b964 - rustc_query_impl[9175953c27275e42]::query_impl::specialization_graph_of::execute_query_non_incr::__rust_end_short_backtrace
  30:        0x10e43b1b8 - rustc_hir_analysis[5e3496c0eeca7936]::coherence::coherent_trait
  31:        0x10f879a24 - rustc_query_impl[9175953c27275e42]::query_impl::coherent_trait::invoke_provider_fn::__rust_begin_short_backtrace
  32:        0x10f7025f0 - rustc_query_impl[9175953c27275e42]::execution::try_execute_query::<rustc_middle[66124c0844e3b1fc]::query::caches::DefIdCache<rustc_middle[66124c0844e3b1fc]::query::erase::ErasedData<[u8; 1usize]>>, false>
  33:        0x10f879b04 - rustc_query_impl[9175953c27275e42]::query_impl::coherent_trait::execute_query_non_incr::__rust_end_short_backtrace
  34:        0x10e3390e0 - rustc_middle[66124c0844e3b1fc]::query::inner::query_ensure_result::<rustc_middle[66124c0844e3b1fc]::query::caches::DefIdCache<rustc_middle[66124c0844e3b1fc]::query::erase::ErasedData<[u8; 1usize]>>, ()>
  35:        0x10e46a474 - rustc_hir_analysis[5e3496c0eeca7936]::check::check::check_item_type
  36:        0x10e488d08 - rustc_hir_analysis[5e3496c0eeca7936]::check::wfcheck::check_well_formed
  37:        0x10f884d00 - rustc_query_impl[9175953c27275e42]::query_impl::check_well_formed::invoke_provider_fn::__rust_begin_short_backtrace
  38:        0x10f6e97f4 - rustc_query_impl[9175953c27275e42]::execution::try_execute_query::<rustc_data_structures[7b8869f4d57ab42d]::vec_cache::VecCache<rustc_span[7ec8a0076d5afac1]::def_id::LocalDefId, rustc_middle[66124c0844e3b1fc]::query::erase::ErasedData<[u8; 1usize]>, rustc_middle[66124c0844e3b1fc]::dep_graph::graph::DepNodeIndex>, false>
  39:        0x10f884dd0 - rustc_query_impl[9175953c27275e42]::query_impl::check_well_formed::execute_query_non_incr::__rust_end_short_backtrace
  40:        0x10e47f470 - rustc_hir_analysis[5e3496c0eeca7936]::check::wfcheck::check_type_wf
  41:        0x10f87650c - rustc_query_impl[9175953c27275e42]::query_impl::check_type_wf::invoke_provider_fn::__rust_begin_short_backtrace
  42:        0x10f717580 - rustc_query_impl[9175953c27275e42]::execution::try_execute_query::<rustc_middle[66124c0844e3b1fc]::query::caches::SingleCache<rustc_middle[66124c0844e3b1fc]::query::erase::ErasedData<[u8; 1usize]>>, false>
  43:        0x10f8765d4 - rustc_query_impl[9175953c27275e42]::query_impl::check_type_wf::execute_query_non_incr::__rust_end_short_backtrace
  44:        0x10e3c7b4c - rustc_hir_analysis[5e3496c0eeca7936]::check_crate
  45:        0x10ea2e0f8 - rustc_interface[d18d0446526c4902]::passes::analysis
  46:        0x10f7122c0 - rustc_query_impl[9175953c27275e42]::execution::try_execute_query::<rustc_middle[66124c0844e3b1fc]::query::caches::SingleCache<rustc_middle[66124c0844e3b1fc]::query::erase::ErasedData<[u8; 0usize]>>, false>
  47:        0x10f8aca00 - rustc_query_impl[9175953c27275e42]::query_impl::analysis::execute_query_non_incr::__rust_end_short_backtrace
  48:        0x10e0d0e98 - rustc_interface[d18d0446526c4902]::passes::create_and_enter_global_ctxt::<core[235390bb17b972d6]::option::Option<rustc_interface[d18d0446526c4902]::queries::Linker>, rustc_driver_impl[6ba38dc3c72a775b]::run_compiler::{closure#0}::{closure#2}>
  49:        0x10e0de044 - rustc_interface[d18d0446526c4902]::interface::run_compiler::<(), rustc_driver_impl[6ba38dc3c72a775b]::run_compiler::{closure#0}>::{closure#1}
  50:        0x10e0d65c4 - std[d7a18b26e6c86cc1]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[d18d0446526c4902]::util::run_in_thread_with_globals<rustc_interface[d18d0446526c4902]::util::run_in_thread_pool_with_globals<rustc_interface[d18d0446526c4902]::interface::run_compiler<(), rustc_driver_impl[6ba38dc3c72a775b]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  51:        0x10e0e5d2c - <std[d7a18b26e6c86cc1]::thread::lifecycle::spawn_unchecked<rustc_interface[d18d0446526c4902]::util::run_in_thread_with_globals<rustc_interface[d18d0446526c4902]::util::run_in_thread_pool_with_globals<rustc_interface[d18d0446526c4902]::interface::run_compiler<(), rustc_driver_impl[6ba38dc3c72a775b]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[235390bb17b972d6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  52:        0x11026fc90 - <std[d7a18b26e6c86cc1]::sys::thread::unix::Thread>::new::thread_start
  53:        0x19c009c08 - __pthread_cond_wait

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions