Skip to content

[ICE]: Calling TypeId::info while evaluating constant triggers ICE #162094

Description

@sutajo

Code

#![feature(type_info)]

use std::{any::TypeId, mem::type_info::Type};

struct Text {
    text: String,
    letter_count: usize,
}

const INFO: &[Type] = &[TypeId::of::<Text>().info()];

fn main() {
    println!("TypeInfo: {:?}", INFO);
}

Meta

rustc --version --verbose:

rustc 1.100.0-nightly (908501772 2026-08-30)
binary: rustc
commit-hash: 90850177249efe0321573c569aec5d12b257f8d6
commit-date: 2026-08-30
host: x86_64-pc-windows-msvc
release: 1.100.0-nightly
LLVM version: 23.1.0

Error output

                                                                                                                                                                                                                                                                        
thread 'rustc' (13536) panicked at /rustc-dev/90850177249efe0321573c569aec5d12b257f8d6/compiler\rustc_abi\src\lib.rs:1711:66:                                                                                                                                           
index out of bounds: the len is 0 but the index is 0

query stack during panic:
#0 [eval_to_allocation_raw] const-evaluating + checking `INFO::promoted[0]`
#1 [eval_to_const_value_raw] simplifying constant for the type system `INFO::promoted[0]`
#2 [eval_to_allocation_raw] const-evaluating + checking `INFO`
#3 [eval_to_const_value_raw] simplifying constant for the type system `INFO`
#4 [eval_to_const_value_raw] simplifying constant for the type system `INFO`
#5 [analysis] running analysis passes on crate `test_crate`
end of query stack
Backtrace

stack backtrace:
   0:     0x7ff95d270dd9 - std::backtrace_rs::backtrace::win64::trace                                                                                                                                                                                                   
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
   1:     0x7ff95d270dd9 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ff95d270dd9 - std::sys::backtrace::_print_fmt
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\sys\backtrace.rs:74
   3:     0x7ff95d270dd9 - std::sys::backtrace::impl$0::print::impl$0::fmt
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\sys\backtrace.rs:44
   4:     0x7ff95d29a16e - core::fmt::write                                                                                                                                                                                                                             
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\core\src\fmt\mod.rs:0
   5:     0x7ff95d280b64 - core::io::write::default_write_fmt                                                                                                                                                                                                           
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\core\src\io\write.rs:402
   6:     0x7ff95d280b64 - core::io::write::Write::write_fmt<std::sys::stdio::windows::Stderr>
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\core\src\io\write.rs:335
   7:     0x7ff95d245c35 - std::sys::backtrace::BacktraceLock::print
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\sys\backtrace.rs:47
   8:     0x7ff95d245c35 - std::panicking::default_hook::closure$0
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\panicking.rs:289
   9:     0x7ff95d2623a8 - std::panicking::default_hook
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\panicking.rs:316
  10:     0x7ff95eede20b - core[5235f252c9935a3]::slice::sort::unstable::heapsort::heapsort::<((rustc_lint_defs[4a46e7435bead740]::Level, &str), usize), <((rustc_lint_defs[4a46e7435bead740]::Level, &str), usize) as core[5235f252c9935a3]::cmp::PartialOrd>::lt>     
  11:     0x7ff95d2627c4 - std::panicking::panic_with_hook
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\panicking.rs:819
  12:     0x7ff95d245d0e - std::panicking::panic_handler::closure$0
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\panicking.rs:685
  13:     0x7ff95d2432ef - std::sys::backtrace::__rust_end_short_backtrace<std::panicking::panic_handler::closure_env$0,never$>
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\sys\backtrace.rs:182
  14:     0x7ff95d2467fe - std::panicking::panic_handler
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\panicking.rs:676
  15:     0x7ff96133a4ad - core::panicking::panic_fmt                                                                                                                                                                                                                   
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\core\src\panicking.rs:80
  16:     0x7ff96133a1fc - core::panicking::panic_bounds_check
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\core\src\panicking.rs:271
  17:     0x7ff95e2bb905 - <hashbrown[7938b6bd6fff78d1]::raw::RawTable<usize>>::reserve_rehash::<indexmap[948a5fb2dee0c14f]::inner::get_hash<rustc_middle[ff8df0a6513f9a65]::mir::interpret::AllocId, (rustc_abi[54d08730cf6afc6a]::Size, rustc_abi[54d08730cf6afc6a]::Align)>::{closure#0}>
  18:     0x7ff96077df3c - <rustc_data_structures[7ddd9000ff95f22b]::vec_cache::SlotIndex>::initialize_bucket::<rustc_middle[ff8df0a6513f9a65]::query::erase::ErasedData<[u8; 24usize]>>                                                                                
  19:     0x7ff95ce24882 - <rustc_const_eval[e7b92f60fabb5087]::const_eval::machine::CompileTimeMachine as rustc_const_eval[e7b92f60fabb5087]::interpret::machine::Machine>::call_intrinsic                                                                             
  20:     0x7ff95e4a9e26 - <alloc[929e38df1a203045]::raw_vec::RawVec<rustc_const_eval[e7b92f60fabb5087]::interpret::stack::Frame>>::grow_one                                                                                                                            
  21:     0x7ff95e2eff54 - <hashbrown[7938b6bd6fff78d1]::raw::RawTable<usize>>::reserve_rehash::<indexmap[948a5fb2dee0c14f]::inner::get_hash<rustc_middle[ff8df0a6513f9a65]::mir::interpret::AllocId, (rustc_abi[54d08730cf6afc6a]::Size, rustc_abi[54d08730cf6afc6a]::Align)>::{closure#0}>
  22:     0x7ff95e4f1df0 - rustc_const_eval[e7b92f60fabb5087]::const_eval::eval_queries::eval_to_allocation_raw_provider                                                                                                                                                
  23:     0x7ff95df19167 - rustc_query_impl[71fda13b9ff8bde5]::query_system                                                                                                                                                                                             
  24:     0x7ff95cb8939d - <rustc_privacy[f4208252cb3844d4]::DefIdsToImplsCollector as rustc_privacy[f4208252cb3844d4]::DefIdVisitor>::visit_def_id                                                                                                                     
  25:     0x7ff95cc75fa4 - rustc_query_impl[71fda13b9ff8bde5]::self_profile::alloc_self_profile_query_strings                                                                                                                                                           
  26:     0x7ff95e4f2b78 - rustc_const_eval[e7b92f60fabb5087]::const_eval::eval_queries::eval_to_const_value_raw_provider                                                                                                                                               
  27:     0x7ff95df1a0a3 - rustc_query_impl[71fda13b9ff8bde5]::query_system                                                                                                                                                                                             
  28:     0x7ff95cb8939d - <rustc_privacy[f4208252cb3844d4]::DefIdsToImplsCollector as rustc_privacy[f4208252cb3844d4]::DefIdVisitor>::visit_def_id                                                                                                                     
  29:     0x7ff95cc77d69 - rustc_query_impl[71fda13b9ff8bde5]::self_profile::alloc_self_profile_query_strings                                                                                                                                                           
  30:     0x7ff95ecbb8ed - <rustc_middle[ff8df0a6513f9a65]::ty::context::TyCtxt>::const_eval_resolve                                                                                                                                                                    
  31:     0x7ff95e49157e - <alloc[929e38df1a203045]::raw_vec::RawVec<rustc_const_eval[e7b92f60fabb5087]::interpret::stack::Frame>>::grow_one                                                                                                                            
  32:     0x7ff95e2ecfbc - <hashbrown[7938b6bd6fff78d1]::raw::RawTable<usize>>::reserve_rehash::<indexmap[948a5fb2dee0c14f]::inner::get_hash<rustc_middle[ff8df0a6513f9a65]::mir::interpret::AllocId, (rustc_abi[54d08730cf6afc6a]::Size, rustc_abi[54d08730cf6afc6a]::Align)>::{closure#0}>
  33:     0x7ff95e4f1df0 - rustc_const_eval[e7b92f60fabb5087]::const_eval::eval_queries::eval_to_allocation_raw_provider                                                                                                                                                
  34:     0x7ff95df19167 - rustc_query_impl[71fda13b9ff8bde5]::query_system                                                                                                                                                                                             
  35:     0x7ff95cb8939d - <rustc_privacy[f4208252cb3844d4]::DefIdsToImplsCollector as rustc_privacy[f4208252cb3844d4]::DefIdVisitor>::visit_def_id                                                                                                                     
  36:     0x7ff95cc75fa4 - rustc_query_impl[71fda13b9ff8bde5]::self_profile::alloc_self_profile_query_strings                                                                                                                                                           
  37:     0x7ff95e4f2b78 - rustc_const_eval[e7b92f60fabb5087]::const_eval::eval_queries::eval_to_const_value_raw_provider                                                                                                                                               
  38:     0x7ff95df1a0a3 - rustc_query_impl[71fda13b9ff8bde5]::query_system                                                                                                                                                                                             
  39:     0x7ff95cb8939d - <rustc_privacy[f4208252cb3844d4]::DefIdsToImplsCollector as rustc_privacy[f4208252cb3844d4]::DefIdVisitor>::visit_def_id                                                                                                                     
  40:     0x7ff95cc77d69 - rustc_query_impl[71fda13b9ff8bde5]::self_profile::alloc_self_profile_query_strings                                                                                                                                                           
  41:     0x7ff95e4f47e9 - rustc_const_eval[e7b92f60fabb5087]::const_eval::eval_queries::eval_to_const_value_raw_provider                                                                                                                                               
  42:     0x7ff95df1a0a3 - rustc_query_impl[71fda13b9ff8bde5]::query_system                                                                                                                                                                                             
  43:     0x7ff95cb8939d - <rustc_privacy[f4208252cb3844d4]::DefIdsToImplsCollector as rustc_privacy[f4208252cb3844d4]::DefIdVisitor>::visit_def_id                                                                                                                     
  44:     0x7ff95cc77d69 - rustc_query_impl[71fda13b9ff8bde5]::self_profile::alloc_self_profile_query_strings                                                                                                                                                           
  45:     0x7ff95d7186b2 - rustc_hir_analysis[392b44a2768d5cb4]::check_crate                                                                                                                                                                                            
  46:     0x7ff95d2ca354 - rustc_interface[f6b4f5efc692e8a6]::passes::analysis                                                                                                                                                                                          
  47:     0x7ff95cc8105a - rustc_query_impl[71fda13b9ff8bde5]::self_profile::alloc_self_profile_query_strings                                                                                                                                                           
  48:     0x7ff95cb706ec - <rustc_privacy[f4208252cb3844d4]::DefIdsToImplsCollector as rustc_privacy[f4208252cb3844d4]::DefIdVisitor>::visit_def_id                                                                                                                     
  49:     0x7ff95cc8100f - rustc_query_impl[71fda13b9ff8bde5]::self_profile::alloc_self_profile_query_strings                                                                                                                                                           
  50:     0x7ff95999f59a - std[9e5749963883991b]::sys::backtrace::__rust_begin_short_backtrace::<std[9e5749963883991b]::thread::lifecycle::spawn_unchecked<ctrlc[44188e9b13fd95d6]::set_handler_inner<rustc_driver_impl[677f3ef92316efab]::install_ctrlc_handler::{closure#0}>::{closure#0}, !>::{closure#1}::{closure#0}::{closure#0}, ()>
  51:     0x7ff959996f25 - RINvNtNtCsdAQp8FNMVdv_3std3sys9backtrace28___rust_begin_short_backtraceNCNCINvNtCslbdk9GNdmrq_15rustc_interface4util26run_in_thread_with_globalsNCINvB1e_31run_in_thread_pool_with_globalsNCINvNtB1g_9interface12run_compileruNCNvCs8SUzeSaXoy5_17rustc_driver_i
  52:     0x7ff9599a4457 - std[9e5749963883991b]::sys::backtrace::__rust_begin_short_backtrace::<std[9e5749963883991b]::thread::lifecycle::spawn_unchecked<ctrlc[44188e9b13fd95d6]::set_handler_inner<rustc_driver_impl[677f3ef92316efab]::install_ctrlc_handler::{closure#0}>::{closure#0}, !>::{closure#1}::{closure#0}::{closure#0}, ()>
  53:     0x7ff95d26d4e3 - std::sys::thread::windows::impl$0::new::thread_start                                                                                                                                                                                         
                               at /rustc/90850177249efe0321573c569aec5d12b257f8d6/library\std\src\sys\thread\windows.rs:58
  54:     0x7ffa59d3ccb7 - BaseThreadInitThunk                                                                                                                                                                                                                          
  55:     0x7ffa5af0ad6c - RtlUserThreadStart   

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