Skip to content

ICE:rustc panicked at compiler\rustc_const_eval\src\interpret\call.rs:293:9 #141691

Open
@sososopy

Description

@sososopy

The code is generated by a fuzzer and reduced manually

Code

#![feature(generic_const_exprs)]
const fn min(a: usize, b: usize) -> usize {
    a
}
trait Trait1<T> {
    fn func() {}
}
struct Struct1<const N: i32, const M: usize> {}

impl<const N: usize, const M: usize> Trait1<[i32; min(N, M)]> for Struct1<N, M> {}
fn main() {
    <Struct1<0, 0>>::func();
}

Meta

rustc --version --verbose:

rustc 1.89.0-nightly (45f256d9d 2025-05-27)
binary: rustc
commit-hash: 45f256d9d7cffb66185c0bf1b8a864cba79db90c
commit-date: 2025-05-27
host: x86_64-pc-windows-msvc
release: 1.89.0-nightly
LLVM version: 20.1.5

Error output

error: the constant `N` is not of type `i32`
  --> .\test.rs:10:67
   |
10 | impl<const N: usize, const M: usize> Trait1<[i32; min(N, M)]> for Struct1<N, M> {}
   |                                                                   ^^^^^^^^^^^^^ expected `i32`, found `usize`
   |
note: required by a const generic parameter in `Struct1`
  --> .\test.rs:8:16
   |
8  | struct Struct1<const N: i32, const M: usize> {}
   |                ^^^^^^^^^^^^ required by this const generic parameter in `Struct1`
Backtrace

thread 'rustc' panicked at compiler\rustc_const_eval\src\interpret\call.rs:293:9:
assertion `left == right` failed
  left: Layout { size: Size(4 bytes), align: AbiAndPrefAlign { abi: Align(4 bytes), pref: Align(4 bytes) }, backend_repr: Scalar(Initialized { value: Int(I32, true), valid_range: 0..=4294967295 }), fields: Primitive, largest_niche: None, uninhabited: false, variants: Single { index: 0 }, max_repr_align: None, unadjusted_abi_align: Align(4 bytes), randomization_seed: 18446462603027873795 }
 right: Layout { size: Size(8 bytes), align: AbiAndPrefAlign { abi: Align(8 bytes), pref: Align(8 bytes) }, backend_repr: Scalar(Initialized { value: Int(I64, false), valid_range: 0..=18446744073709551615 }), fields: Primitive, largest_niche: None, uninhabited: false, variants: Single { index: 0 }, max_repr_align: None, unadjusted_abi_align: Align(8 bytes), randomization_seed: 8589934599 }
stack backtrace:
   0:     0x7ffe23dfa092 - std::backtrace_rs::backtrace::win64::trace
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
   1:     0x7ffe23dfa092 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ffe23dfa092 - std::sys::backtrace::_print_fmt
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\sys\backtrace.rs:66
   3:     0x7ffe23dfa092 - std::sys::backtrace::impl$0::print::impl$0::fmt
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\sys\backtrace.rs:39
   4:     0x7ffe23e2dcdb - core::fmt::rt::Argument::fmt
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\core\src\fmt\rt.rs:173
   5:     0x7ffe23e2dcdb - core::fmt::write
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\core\src\fmt\mod.rs:1446
   6:     0x7ffe23defce7 - std::io::default_write_fmt
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\io\mod.rs:639
   7:     0x7ffe23defce7 - std::io::Write::write_fmt<std::sys::stdio::windows::Stderr>
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\io\mod.rs:1914
   8:     0x7ffe23df9ed5 - std::sys::backtrace::BacktraceLock::print
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\sys\backtrace.rs:42
   9:     0x7ffe23dffc6a - std::panicking::default_hook::closure$0
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\panicking.rs:300
  10:     0x7ffe23dffa00 - std::panicking::default_hook
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\panicking.rs:327
  11:     0x7ffe25532759 - core[ac12185d53e22e8f]::slice::sort::unstable::heapsort::heapsort::<((rustc_lint_defs[193b32fd50306806]::Level, &str), usize), <((rustc_lint_defs[193b32fd50306806]::Level, &str), usize) as core[ac12185d53e22e8f]::cmp::PartialOrd>::lt>
  12:     0x7ffe23e008fe - std::panicking::rust_panic_with_hook
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\panicking.rs:841
  13:     0x7ffe23e00659 - std::panicking::begin_panic_handler::closure$0
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\panicking.rs:706
  14:     0x7ffe23dfae5f - std::sys::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\sys\backtrace.rs:168
  15:     0x7ffe23e0025e - std::panicking::begin_panic_handler
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\panicking.rs:697
  16:     0x7ffe26fca181 - core::panicking::panic_fmt
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\core\src\panicking.rs:75
  17:     0x7ffe26fca6b4 - core::panicking::assert_failed_inner
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\core\src\panicking.rs:427
  18:     0x7ffe2606b9af - core[ac12185d53e22e8f]::panicking::assert_failed::<rustc_abi[108aeeaba70cd8e6]::layout::ty::Layout, rustc_abi[108aeeaba70cd8e6]::layout::ty::Layout>
  19:     0x7ffe2489dfda - rustc_const_eval[4510b251ae541fec]::const_eval::eval_queries::eval_to_allocation_raw_provider
  20:     0x7ffe246bea29 - rustc_const_eval[4510b251ae541fec]::const_eval::fn_queries::constness
  21:     0x7ffe2488e271 - rustc_const_eval[4510b251ae541fec]::const_eval::eval_queries::eval_to_allocation_raw_provider
  22:     0x7ffe24d60a18 - rustc_query_impl[e0f175676c7ebdd7]::plumbing::query_key_hash_verify_all
  23:     0x7ffe24c4f353 - RINvNtNtCsiGEjBpC2ZP2_18rustc_query_system5query8plumbing17try_execute_queryINtCsjjmM8TuMoF7_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheINtNtCs55DwxXtzdwY_12rustc_middle2ty20PseudoCanonicalInputNtNtNtB2y_3mir9interpret8GlobalIdEINtNtNtB2
  24:     0x7ffe24d6a263 - rustc_query_impl[e0f175676c7ebdd7]::plumbing::query_key_hash_verify_all
  25:     0x7ffe2374cd9a - rustc_const_eval[4510b251ae541fec]::const_eval::valtrees::eval_to_valtree
  26:     0x7ffe203d6457 - <alloc[eace62e2d56f260]::sync::Arc<jiff[9304c94eb9a4089a]::tz::db::Kind>>::drop_slow
  27:     0x7ffe23976168 - <alloc[eace62e2d56f260]::sync::Arc<rustc_session[16fbb01393245908]::cstore::CrateSource>>::drop_slow
  28:     0x7ffe2394db2b - <alloc[eace62e2d56f260]::sync::Arc<rustc_session[16fbb01393245908]::cstore::CrateSource>>::drop_slow
  29:     0x7ffe24c4f4ac - RINvNtNtCsiGEjBpC2ZP2_18rustc_query_system5query8plumbing17try_execute_queryINtCsjjmM8TuMoF7_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheINtNtCs55DwxXtzdwY_12rustc_middle2ty20PseudoCanonicalInputNtNtNtB2y_3mir9interpret8GlobalIdEINtNtNtB2
  30:     0x7ffe2398de53 - rustc_query_impl[e0f175676c7ebdd7]::query_system
  31:     0x7ffe23c815cb - <rustc_middle[3b4c1402574a7aca]::ty::context::TyCtxt>::const_eval_global_id_for_typeck
  32:     0x7ffe23c80756 - <rustc_middle[3b4c1402574a7aca]::ty::context::TyCtxt>::const_eval_resolve_for_typeck
  33:     0x7ffe23a98e3b - rustc_trait_selection[5fe835ba5507d126]::traits::try_evaluate_const
  34:     0x7ffe23a8d33e - rustc_trait_selection[5fe835ba5507d126]::traits::const_evaluatable::is_const_evaluatable
  35:     0x7ffe24e3f105 - <rustc_trait_selection[5fe835ba5507d126]::traits::select::SelectionContext>::evaluate_root_obligation
  36:     0x7ffe2469e58e - rustc_traits[36faf54d2693f56c]::evaluate_obligation::evaluate_obligation
  37:     0x7ffe24d6070e - rustc_query_impl[e0f175676c7ebdd7]::plumbing::query_key_hash_verify_all
  38:     0x7ffe24c5eb61 - RINvNtNtCsiGEjBpC2ZP2_18rustc_query_system5query8plumbing17try_execute_queryINtCsjjmM8TuMoF7_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheINtNtCsljKxAZ0XE6t_13rustc_type_ir9canonical19CanonicalQueryInputNtNtNtCs55DwxXtzdwY_12rustc_middle2t
  39:     0x7ffe24d72770 - rustc_query_impl[e0f175676c7ebdd7]::plumbing::query_key_hash_verify_all
  40:     0x7ffe24e99a3c - <rustc_infer[985d2958cd0e1db]::infer::InferCtxt as rustc_trait_selection[5fe835ba5507d126]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
  41:     0x7ffe24e97c59 - <rustc_infer[985d2958cd0e1db]::infer::InferCtxt as rustc_trait_selection[5fe835ba5507d126]::traits::query::evaluate_obligation::InferCtxtExt>::predicate_may_hold
  42:     0x7ffe23f72d8e - <alloc[eace62e2d56f260]::raw_vec::RawVec<rustc_hir_typeck[fd2d3b73b4775676]::method::probe::Candidate>>::grow_one
  43:     0x7ffe2402eafc - rustc_hir_typeck[fd2d3b73b4775676]::method::probe::method_autoderef_steps
  44:     0x7ffe2402b9c3 - rustc_hir_typeck[fd2d3b73b4775676]::method::probe::method_autoderef_steps
  45:     0x7ffe24099604 - rustc_hir_typeck[fd2d3b73b4775676]::typeck
  46:     0x7ffe23fca182 - <<rustc_hir_typeck[fd2d3b73b4775676]::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir[f84f795d5caa6a3b]::visit::TypeVisitor<rustc_middle[3b4c1402574a7aca]::ty::context::TyCtxt>>::visit_ty
  47:     0x7ffe23fa1e4e - <<rustc_hir_typeck[fd2d3b73b4775676]::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir[f84f795d5caa6a3b]::visit::TypeVisitor<rustc_middle[3b4c1402574a7aca]::ty::context::TyCtxt>>::visit_ty
  48:     0x7ffe23f7b8a9 - <alloc[eace62e2d56f260]::raw_vec::RawVec<rustc_hir_typeck[fd2d3b73b4775676]::method::probe::Candidate>>::grow_one
  49:     0x7ffe23fa3256 - <<rustc_hir_typeck[fd2d3b73b4775676]::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir[f84f795d5caa6a3b]::visit::TypeVisitor<rustc_middle[3b4c1402574a7aca]::ty::context::TyCtxt>>::visit_ty
  50:     0x7ffe240071a2 - <<rustc_hir_typeck[fd2d3b73b4775676]::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir[f84f795d5caa6a3b]::visit::TypeVisitor<rustc_middle[3b4c1402574a7aca]::t: 
:context::TyCtxt>>::visit_ty
  51:     0x7ffe23fa3863 - <<rustc_hir_typeck[fd2d3b73b4775676]::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir[f84f795d5caa6a3b]::visit::TypeVisitor<rustc_middle[3b4c1402574a7aca]::ty::context::TyCtxt>>::visit_ty
  52:     0x7ffe2406bfc5 - rustc_hir_typeck[fd2d3b73b4775676]::typeck
  53:     0x7ffe240b7b29 - <rustc_hir_typeck[fd2d3b73b4775676]::upvar::InferBorrowKind as rustc_hir_typeck[fd2d3b73b4775676]::expr_use_visitor::Delegate>::borrow
  54:     0x7ffe2406b66f - rustc_hir_typeck[fd2d3b73b4775676]::typeck
  55:     0x7ffe24d617cb - rustc_query_impl[e0f175676c7ebdd7]::plumbing::query_key_hash_verify_all
  56:     0x7ffe24c9a4b4 - RINvNtNtCsiGEjBpC2ZP2_18rustc_query_system5query8plumbing17try_execute_queryINtCsjjmM8TuMoF7_16rustc_query_impl13DynamicConfigINtNtCsdp6gSCMhqdi_21rustc_data_structures9vec_cache8VecCacheNtNtCs8zVwBRWrGp6_10rustc_span6def_id10LocalDefIdINtNtNtCs55DwxXtzdwY
  57:     0x7ffe24d69b12 - rustc_query_impl[e0f175676c7ebdd7]::plumbing::query_key_hash_verify_all
  58:     0x7ffe240f28cd - RINvMs6_NtCshOjLGddQ5dz_9hashbrown3rawINtB6_8RawTablejE14reserve_rehashNCINvNtNtCskeB7iFIufKC_8indexmap3map4core8get_hashTNtNtNtCs55DwxXtzdwY_12rustc_middle2ty9predicate6ClauseNtNtCs8zVwBRWrGp6_10rustc_span13span_encoding4SpanEuE0ECshEom3V5sNcT_18rustc_hir
  59:     0x7ffe2418fe12 - rustc_hir_analysis[cd991074a42e8cf5]::check_crate
  60:     0x7ffe23e69c83 - <rustc_interface[6bd24b2f061a6461]::passes::LintStoreExpandImpl as rustc_expand[ee8b454fe707dc9e]::base::LintStoreExpand>::pre_expansion_lint
  61:     0x7ffe203ea507 - rustc_interface[6bd24b2f061a6461]::passes::analysis
  62:     0x7ffe23979d8a - <alloc[eace62e2d56f260]::sync::Arc<rustc_session[16fbb01393245908]::cstore::CrateSource>>::drop_slow
  63:     0x7ffe238811ea - RINvNtNtCsiGEjBpC2ZP2_18rustc_query_system5query8plumbing17try_execute_queryINtCsjjmM8TuMoF7_16rustc_query_impl13DynamicConfigINtNtB4_6caches11SingleCacheINtNtNtCs55DwxXtzdwY_12rustc_middle5query5erase6ErasedAhj0_EEKb0_KB3s_KB3s_ENtNtB1f_8plumbing9QueryCtx
  64:     0x7ffe23980413 - rustc_query_impl[e0f175676c7ebdd7]::query_system
  65:     0x7ffe203aeef5 - std[447c3cd9e98ab315]::sys::backtrace::__rust_begin_short_backtrace::<<std[447c3cd9e98ab315]::thread::Builder>::spawn_unchecked_<ctrlc[d724601dd3fb70d4]::set_handler_inner<rustc_driver_impl[e5fceb87a81e35f5]::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
  66:     0x7ffe203a9165 - std[447c3cd9e98ab315]::sys::backtrace::__rust_begin_short_backtrace::<<std[447c3cd9e98ab315]::thread::Builder>::spawn_unchecked_<ctrlc[d724601dd3fb70d4]::set_handler_inner<rustc_driver_impl[e5fceb87a81e35f5]::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
  67:     0x7ffe203a438f - RINvNtNtCs5SxPwUNJkn9_3std3sys9backtrace28___rust_begin_short_backtraceNCNCINvNtCs9fVJ9cGiVK7_15rustc_interface4util26run_in_thread_with_globalsNCINvB1e_31run_in_thread_pool_with_globalsNCINvNtB1g_9interface12run_compileruNCNvCsjKdFQ38TYNZ_17rustc_driver_i
  68:     0x7ffe203b325d - std[447c3cd9e98ab315]::sys::backtrace::__rust_begin_short_backtrace::<<std[447c3cd9e98ab315]::thread::Builder>::spawn_unchecked_<ctrlc[d724601dd3fb70d4]::set_handler_inner<rustc_driver_impl[e5fceb87a81e35f5]::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
  69:     0x7ffe23e04c6d - alloc::boxed::impl$28::call_once
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\alloc\src\boxed.rs:1966
  70:     0x7ffe23e04c6d - alloc::boxed::impl$28::call_once
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\alloc\src\boxed.rs:1966
  71:     0x7ffe23e04c6d - std::sys::pal::windows::thread::impl$0::new::thread_start
                               at /rustc/45f256d9d7cffb66185c0bf1b8a864cba79db90c/library\std\src\sys\pal\windows\thread.rs:56
  72:     0x7ffee8147374 - BaseThreadInitThunk
  73:     0x7ffeea0bcc91 - RtlUserThreadStart

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 `D:\rust_test\gpt_generate_mutators\rustc-ice-2025-05-28T13_29_59-8096.txt` to your bug report

query stack during panic:
#0 [eval_to_allocation_raw] const-evaluating + checking `<impl at .\test.rs:10:1: 10:80>::{constant#0}`
#1 [eval_to_valtree] evaluating type-level constant
... and 3 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
error: aborting due to 1 previous error; 2 warnings emitted

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.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions