Open
Description
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