Skip to content

ICE: const parameter types cannot be generic #120941

Description

@matthiaskrgr

Code

#![feature(associated_const_equality, generic_const_items)]

pub fn accept(_: impl Trait<K = 0>) {}

pub trait Trait {
    const K<'a, T: 'a + Copy, const N: usize>: Option<[T; N]> = None
where
    String: From<T>;
}

pub fn main() {}

Meta

rustc --version --verbose:

rustc 1.78.0-nightly (6cc484351 2024-02-10)
binary: rustc
commit-hash: 6cc4843512d613f51ec81aba689180c31b0b28b6
commit-date: 2024-02-10
host: x86_64-unknown-linux-gnu
release: 1.78.0-nightly
LLVM version: 17.0.6

Error output


Backtrace

warning: the feature `generic_const_items` is incomplete and may not be safe to use and/or cause compiler crashes
 --> FC6B3BDBC59A37E6F55C4D01B943A64E13A55DD84FCE5FB628C66A4F8E6C0DC1.rs:1:39
  |
1 | #![feature(associated_const_equality, generic_const_items)]
  |                                       ^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #113521 <https://github.com/rust-lang/rust/issues/113521> for more information
  = note: `#[warn(incomplete_features)]` on by default

thread 'rustc' panicked at compiler/rustc_hir_analysis/src/collect/type_of.rs:101:22:
const parameter types cannot be generic
stack backtrace:
   0:     0x7f1763f8b936 - std::backtrace_rs::backtrace::libunwind::trace::hce337a0fd0c5e1da
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1:     0x7f1763f8b936 - std::backtrace_rs::backtrace::trace_unsynchronized::hbc9b4a5cec9b81eb
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f1763f8b936 - std::sys_common::backtrace::_print_fmt::habe453adcd959f3b
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7f1763f8b936 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h67bb2d10ecb8af10
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f1763fde380 - core::fmt::rt::Argument::fmt::hd5debad710e176b4
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/core/src/fmt/rt.rs:142:9
   5:     0x7f1763fde380 - core::fmt::write::h5987d5bee25e3bd6
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/core/src/fmt/mod.rs:1120:17
   6:     0x7f1763f7f0ef - std::io::Write::write_fmt::h0876e0f4bddb923c
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/io/mod.rs:1854:15
   7:     0x7f1763f8b714 - std::sys_common::backtrace::_print::h4ae69e83d64cbf46
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7f1763f8b714 - std::sys_common::backtrace::print::h1d97d5831d0262fb
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7f1763f8e4d7 - std::panicking::default_hook::{{closure}}::h39fabb1b3e65f47a
  10:     0x7f1763f8e239 - std::panicking::default_hook::h416520d6bb2cb53f
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/panicking.rs:292:9
  11:     0x7f1766d266dc - std[3acc11fb688f3d76]::panicking::update_hook::<alloc[408654ec2a1215fa]::boxed::Box<rustc_driver_impl[a7481a600b2f11a0]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7f1763f8ec26 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h2450ecbe2b1c1ea3
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/alloc/src/boxed.rs:2030:9
  13:     0x7f1763f8ec26 - std::panicking::rust_panic_with_hook::h99ef5cbc4b3b0ae4
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/panicking.rs:785:13
  14:     0x7f1763f8e972 - std::panicking::begin_panic_handler::{{closure}}::h2284f60633c08873
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/panicking.rs:659:13
  15:     0x7f1763f8be36 - std::sys_common::backtrace::__rust_end_short_backtrace::h84bc49437da26b5c
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x7f1763f8e6c4 - rust_begin_unwind
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/panicking.rs:647:5
  17:     0x7f1763fdaa85 - core::panicking::panic_fmt::hfa0af2309df9012f
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/core/src/panicking.rs:72:14
  18:     0x7f1763fda833 - core::panicking::panic_display::h5e88803d35c951b0
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/core/src/panicking.rs:196:5
  19:     0x7f1763fda833 - core::panicking::panic_str::h1fa7a90d3180c5de
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/core/src/panicking.rs:171:5
  20:     0x7f1763fda833 - core::option::expect_failed::hee4b38d562c1aee6
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/core/src/option.rs:1992:5
  21:     0x7f1766557f0f - rustc_hir_analysis[1799a6ccb3095d3d]::collect::type_of::type_of
  22:     0x7f1768075866 - rustc_query_impl[60cfa4eef1128f6c]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[60cfa4eef1128f6c]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 8usize]>>
  23:     0x7f17680744e1 - rustc_query_system[30cc65df29d7d3a8]::query::plumbing::try_execute_query::<rustc_query_impl[60cfa4eef1128f6c]::DynamicConfig<rustc_query_system[30cc65df29d7d3a8]::query::caches::DefIdCache<rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[60cfa4eef1128f6c]::plumbing::QueryCtxt, false>
  24:     0x7f1768073fdd - rustc_query_impl[60cfa4eef1128f6c]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  25:     0x7f176823af7c - rustc_middle[9f94bb95ba4eb693]::query::plumbing::query_get_at::<rustc_query_system[30cc65df29d7d3a8]::query::caches::DefIdCache<rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 8usize]>>>
  26:     0x7f1768878b56 - <rustc_middle[9f94bb95ba4eb693]::ty::consts::Const>::from_anon_const
  27:     0x7f1768ab8ded - <dyn rustc_hir_analysis[1799a6ccb3095d3d]::astconv::AstConv>::instantiate_poly_trait_ref
  28:     0x7f1768870842 - rustc_hir_analysis[1799a6ccb3095d3d]::collect::predicates_of::gather_explicit_predicates_of
  29:     0x7f1768181aef - rustc_query_impl[60cfa4eef1128f6c]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[60cfa4eef1128f6c]::query_impl::explicit_predicates_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 24usize]>>
  30:     0x7f1768180d0e - rustc_query_system[30cc65df29d7d3a8]::query::plumbing::try_execute_query::<rustc_query_impl[60cfa4eef1128f6c]::DynamicConfig<rustc_query_system[30cc65df29d7d3a8]::query::caches::DefIdCache<rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[60cfa4eef1128f6c]::plumbing::QueryCtxt, false>
  31:     0x7f1768000260 - rustc_query_impl[60cfa4eef1128f6c]::query_impl::explicit_predicates_of::get_query_non_incr::__rust_end_short_backtrace
  32:     0x7f17680f9e1c - rustc_hir_analysis[1799a6ccb3095d3d]::collect::predicates_defined_on
  33:     0x7f17680f9d13 - rustc_query_impl[60cfa4eef1128f6c]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[60cfa4eef1128f6c]::query_impl::predicates_defined_on::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 24usize]>>
  34:     0x7f1768180cf6 - rustc_query_system[30cc65df29d7d3a8]::query::plumbing::try_execute_query::<rustc_query_impl[60cfa4eef1128f6c]::DynamicConfig<rustc_query_system[30cc65df29d7d3a8]::query::caches::DefIdCache<rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[60cfa4eef1128f6c]::plumbing::QueryCtxt, false>
  35:     0x7f17681808e0 - rustc_query_impl[60cfa4eef1128f6c]::query_impl::predicates_defined_on::get_query_non_incr::__rust_end_short_backtrace
  36:     0x7f176817f955 - rustc_hir_analysis[1799a6ccb3095d3d]::collect::predicates_of::predicates_of
  37:     0x7f176817f865 - rustc_query_impl[60cfa4eef1128f6c]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[60cfa4eef1128f6c]::query_impl::predicates_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 24usize]>>
  38:     0x7f1768180cc9 - rustc_query_system[30cc65df29d7d3a8]::query::plumbing::try_execute_query::<rustc_query_impl[60cfa4eef1128f6c]::DynamicConfig<rustc_query_system[30cc65df29d7d3a8]::query::caches::DefIdCache<rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[60cfa4eef1128f6c]::plumbing::QueryCtxt, false>
  39:     0x7f17681809be - rustc_query_impl[60cfa4eef1128f6c]::query_impl::predicates_of::get_query_non_incr::__rust_end_short_backtrace
  40:     0x7f1768384878 - <rustc_hir_analysis[1799a6ccb3095d3d]::collect::CollectItemTypesVisitor as rustc_hir[3813da9c3dbe6953]::intravisit::Visitor>::visit_item
  41:     0x7f1768382b6a - rustc_hir_analysis[1799a6ccb3095d3d]::collect::collect_mod_item_types
  42:     0x7f1768382ae7 - rustc_query_impl[60cfa4eef1128f6c]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[60cfa4eef1128f6c]::query_impl::collect_mod_item_types::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 0usize]>>
  43:     0x7f1768b2cb7b - rustc_query_system[30cc65df29d7d3a8]::query::plumbing::try_execute_query::<rustc_query_impl[60cfa4eef1128f6c]::DynamicConfig<rustc_query_system[30cc65df29d7d3a8]::query::caches::DefaultCache<rustc_span[4a89bdba9678f8e0]::def_id::LocalModDefId, rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[60cfa4eef1128f6c]::plumbing::QueryCtxt, false>
  44:     0x7f1768b2c69f - rustc_query_impl[60cfa4eef1128f6c]::query_impl::collect_mod_item_types::get_query_non_incr::__rust_end_short_backtrace
  45:     0x7f17681cfa52 - rustc_hir_analysis[1799a6ccb3095d3d]::check_crate
  46:     0x7f176898bd92 - rustc_interface[57a4cb1189ffa880]::passes::analysis
  47:     0x7f176898b9df - rustc_query_impl[60cfa4eef1128f6c]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[60cfa4eef1128f6c]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 1usize]>>
  48:     0x7f1768d24372 - rustc_query_system[30cc65df29d7d3a8]::query::plumbing::try_execute_query::<rustc_query_impl[60cfa4eef1128f6c]::DynamicConfig<rustc_query_system[30cc65df29d7d3a8]::query::caches::SingleCache<rustc_middle[9f94bb95ba4eb693]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[60cfa4eef1128f6c]::plumbing::QueryCtxt, false>
  49:     0x7f1768d240d5 - rustc_query_impl[60cfa4eef1128f6c]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  50:     0x7f1768d3a582 - rustc_interface[57a4cb1189ffa880]::interface::run_compiler::<core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>, rustc_driver_impl[a7481a600b2f11a0]::run_compiler::{closure#0}>::{closure#0}
  51:     0x7f1768dd2b46 - std[3acc11fb688f3d76]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[57a4cb1189ffa880]::util::run_in_thread_with_globals<rustc_interface[57a4cb1189ffa880]::util::run_in_thread_pool_with_globals<rustc_interface[57a4cb1189ffa880]::interface::run_compiler<core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>, rustc_driver_impl[a7481a600b2f11a0]::run_compiler::{closure#0}>::{closure#0}, core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>>::{closure#0}, core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>>
  52:     0x7f1768dd2973 - <<std[3acc11fb688f3d76]::thread::Builder>::spawn_unchecked_<rustc_interface[57a4cb1189ffa880]::util::run_in_thread_with_globals<rustc_interface[57a4cb1189ffa880]::util::run_in_thread_pool_with_globals<rustc_interface[57a4cb1189ffa880]::interface::run_compiler<core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>, rustc_driver_impl[a7481a600b2f11a0]::run_compiler::{closure#0}>::{closure#0}, core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>>::{closure#0}, core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[8df037f8ced6ea1f]::result::Result<(), rustc_span[4a89bdba9678f8e0]::ErrorGuaranteed>>::{closure#1} as core[8df037f8ced6ea1f]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  53:     0x7f1763f97eb5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61e4d902e063b23d
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/alloc/src/boxed.rs:2016:9
  54:     0x7f1763f97eb5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hfa3eaf4f75275f59
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/alloc/src/boxed.rs:2016:9
  55:     0x7f1763f97eb5 - std::sys::pal::unix::thread::Thread::new::thread_start::hb901d27f412b0ecd
                               at /rustc/6cc4843512d613f51ec81aba689180c31b0b28b6/library/std/src/sys/pal/unix/thread.rs:108:17
  56:     0x7f1763d819eb - <unknown>
  57:     0x7f1763e057cc - <unknown>
  58:                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: please attach the file at `/tmp/im/rustc-ice-2024-02-11T17_08_31-2205227.txt` to your bug report

query stack during panic:
#0 [type_of] computing type of `accept::{constant#0}`
#1 [explicit_predicates_of] computing explicit predicates of `accept`
#2 [predicates_defined_on] computing predicates of `accept`
#3 [predicates_of] computing predicates of `accept`
#4 [collect_mod_item_types] collecting item types in top-level module
#5 [analysis] running analysis passes on this crate
end of query stack

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions