Repository navigation
Closed as duplicate
Labels
C-bugCategory: This is a bug.Category: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
Hi,
I noticed building nalgebra 0.29 fails on nightly. Unfortunately, I am not familiar with the crate enough to provide a minimal verifiable example. Sorry for that.
Reproducing
Here is how you can reproduce the ICE:
git clone https://github.com/dimforge/nalgebra && cd nalgebra && git checkout v0.29.0 && cargo +nightly buildrustc +nightly --version:
rustc 1.96.0-nightly (562dee482 2026-03-21)
Error output
Backtrace
thread 'rustc' (124858) 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>
stack backtrace:
0: __rustc::rust_begin_unwind
1: core::panicking::panic_fmt
2: core::result::unwrap_failed
3: <rustc_infer::infer::InferCtxt>::instantiate_ty_var::<rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>
4: <rustc_middle::ty::generic_args::GenericArg as rustc_type_ir::relate::Relate<rustc_middle::ty::context::TyCtxt>>::relate::<rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>
5: <core::result::Result<rustc_middle::ty::generic_args::GenericArg, rustc_type_ir::error::TypeError<rustc_middle::ty::context::TyCtxt>> as rustc_type_ir::interner::CollectAndApply<rustc_middle::ty::generic_args::GenericArg, &rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>>>::collect_and_apply::<core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>, core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>>, rustc_type_ir::relate::relate_args_invariantly<rustc_middle::ty::context::TyCtxt, rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>::{closure#0}>, <rustc_middle::ty::context::TyCtxt>::mk_args_from_iter<core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>, core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>>, rustc_type_ir::relate::relate_args_invariantly<rustc_middle::ty::context::TyCtxt, rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>::{closure#0}>, core::result::Result<rustc_middle::ty::generic_args::GenericArg, rustc_type_ir::error::TypeError<rustc_middle::ty::context::TyCtxt>>>::{closure#0}>
6: rustc_type_ir::relate::structurally_relate_tys::<rustc_middle::ty::context::TyCtxt, rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>
7: <rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt> as rustc_type_ir::relate::TypeRelation<rustc_middle::ty::context::TyCtxt>>::tys
8: <rustc_infer::infer::InferCtxt>::instantiate_ty_var::<rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>
9: <rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt> as rustc_type_ir::relate::TypeRelation<rustc_middle::ty::context::TyCtxt>>::tys
10: rustc_type_ir::relate::structurally_relate_tys::<rustc_middle::ty::context::TyCtxt, rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>
11: <rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt> as rustc_type_ir::relate::TypeRelation<rustc_middle::ty::context::TyCtxt>>::tys
12: <core::result::Result<rustc_middle::ty::generic_args::GenericArg, rustc_type_ir::error::TypeError<rustc_middle::ty::context::TyCtxt>> as rustc_type_ir::interner::CollectAndApply<rustc_middle::ty::generic_args::GenericArg, &rustc_middle::ty::list::RawList<(), rustc_middle::ty::generic_args::GenericArg>>>::collect_and_apply::<core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>, core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>>, rustc_type_ir::relate::relate_args_invariantly<rustc_middle::ty::context::TyCtxt, rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>::{closure#0}>, <rustc_middle::ty::context::TyCtxt>::mk_args_from_iter<core::iter::adapters::map::Map<core::iter::adapters::zip::Zip<core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>, core::iter::adapters::copied::Copied<core::slice::iter::Iter<rustc_middle::ty::generic_args::GenericArg>>>, rustc_type_ir::relate::relate_args_invariantly<rustc_middle::ty::context::TyCtxt, rustc_type_ir::relate::solver_relating::SolverRelating<rustc_infer::infer::InferCtxt, rustc_middle::ty::context::TyCtxt>>::{closure#0}>, core::result::Result<rustc_middle::ty::generic_args::GenericArg, rustc_type_ir::error::TypeError<rustc_middle::ty::context::TyCtxt>>>::{closure#0}>
13: <rustc_infer::infer::at::At>::eq_trace::<rustc_type_ir::predicate::TraitRef<rustc_middle::ty::context::TyCtxt>>
14: rustc_trait_selection::traits::coherence::overlap
15: <rustc_middle::traits::specialization_graph::Children as rustc_trait_selection::traits::specialize::specialization_graph::ChildrenExt>::insert
16: <rustc_middle::traits::specialization_graph::Graph as rustc_trait_selection::traits::specialize::specialization_graph::GraphExt>::insert
17: rustc_trait_selection::traits::specialize::specialization_graph_provider
18: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::DefIdCache<rustc_middle::query::erase::ErasedData<[u8; 8]>>, true>
19: rustc_hir_analysis::coherence::coherent_trait
[... omitted 1 frame ...]
20: rustc_hir_analysis::check::check::check_item_type
21: rustc_hir_analysis::check::wfcheck::check_well_formed
[... omitted 1 frame ...]
22: rustc_hir_analysis::check::wfcheck::check_type_wf
[... omitted 1 frame ...]
23: rustc_hir_analysis::check_crate
24: rustc_interface::passes::analysis
25: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 0]>>, true>
26: 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: please make sure that you have updated to the latest nightly
note: please attach the file at `/home/xxx/Documents/nalgebra/rustc-ice-2026-03-23T14_02_55-124856.txt` to your bug report
note: rustc 1.96.0-nightly (562dee482 2026-03-21) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]
note: some of the compiler flags provided by cargo are hidden
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 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
warning: `nalgebra` (lib) generated 3 warnings
error: could not compile `nalgebra` (lib) due to 6 previous errors; 3 warnings emitted
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Activity
[-][ICE]: cimpiling naglebra 0.29 fails[/-][+][ICE]: compiling naglebra 0.29 fails on nightly[/+]lrobidou commentedon Mar 23, 2026
Might be duplication of #154244
jieyouxu commentedon Mar 23, 2026
Thanks, closing in favor of earlier report
Result::unwrap_err()on anOkvalue during specialization graph building #154244