rust-lang / rust-lang/rust

ICE: type parameter `T/#2` (T/#2/2) out of range when instantiating, args=[?8c, ?9c]

Open
#145,824 2 comments 0 reactions 1 assignee View on GitHub

@zakrad is already working on this.

Since Aug 31, 2026.

C-bug E-needs-test F-associated_const_equality I-ICE T-compiler
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

Code
#![cfg_attr(not(test), no_std)]
#![feature(generic_const_exprs)]
#![feature(associated_const_equality)]
#![allow(incomplete_features)]

use core::fmt::{self, Write};

type Pixel = Option<char>;


pub struct Canvas<const WIDTH: usize, const HEIGHT: usize>(pub [[Pixel; WIDTH]; HEIGHT]);

impl<const WIDTH: usize, const HEIGHT: usize> Canvas<WIDTH, HEIGHT> {
    pub fn new(pixel: Pixel) -> Self {
        Self([[pixel; WIDTH]; HEIGHT])
    }
}

impl<const WIDTH: usize, const HEIGHT: usize> Default for Canvas<WIDTH, HEIGHT> {
    fn default() -> Self {
        Self::new(None)
    }
}

impl<const WIDTH: usize, const HEIGHT: usize> fmt::Display for Canvas<WIDTH, HEIGHT> {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        for row in &self.0 {
            for pixel in row {
                f.write_char(pixel.unwrap_or(' '))?;
            }
            f.write_char('\n')?;
        }
        Ok(())
    }
}

trait Widget {
    const WIDTH: usize;
    const HEIGHT: usize;

    fn render(&mut self) -> Canvas<{ Self::WIDTH }, { Self::HEIGHT }>;
}

pub struct Box<const WIDTH: usize, const HEIGHT: usize, T> {
    border: Pixel,
    inner: T,
}

impl<const WIDTH: usize, const HEIGHT: usize, T> Box<WIDTH, HEIGHT, T> {
    pub fn new(inner: T) -> Self
    where
        T: Widget<WIDTH = { WIDTH - 2 }, HEIGHT = { HEIGHT - 2 }>,
    {
        Self {
            border: Pixel::default(),
            inner,
        }
    }

    fn empty<const X: usize, const Y: usize>() -> Box<X, Y, Empty<{ X - 2 }, { Y - 2 }>> {
        Box::new(Empty)
    }
}

pub struct Empty<const WIDTH: usize, const HEIGHT: usize>;

impl<const WIDTH: usize, const HEIGHT: usize> Widget for Empty<WIDTH, HEIGHT> {
    const WIDTH: usize = WIDTH;
    const HEIGHT: usize = HEIGHT;

    fn render(&mut self) -> Canvas<{ Self::WIDTH }, { Self::HEIGHT }> {
        Canvas::default()
    }
}

pub struct HBox<const WIDTH: usize, const HEIGHT: usize, T> {
    inner: T,
}

impl<const WIDTH: usize, const HEIGHT: usize, T> HBox<WIDTH, HEIGHT, T> {
    fn new(inner: T) -> Self
    where
        T: HContainer<WIDTH, HEIGHT>,
    {
        Self { inner }
    }
}

impl<const WIDTH: usize, const HEIGHT: usize, T> Widget for HBox<WIDTH, HEIGHT, T> {
    const WIDTH: usize = WIDTH;
    const HEIGHT: usize = HEIGHT;

    fn render(&mut self) -> Canvas<{ Self::WIDTH }, { Self::HEIGHT }> {
        let mut canvas = Canvas::default();
        canvas
    }
}


trait HContainer<const WIDTH: usize, const HEIGHT: usize> {}

impl<const WIDTH: usize, const HEIGHT: usize, T, S> HContainer<WIDTH, HEIGHT> for (T, S)
where
    T: Widget,
    S: Widget,
{
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_foo() {
        let w = HBox::<20, 4, _>::new((
            Box::<9, 2, _>::new(Empty::<7, 0>).border(Some('#')),
            Box::<9, 2, _>::new(Empty::<7, 0>).border(Some('#')),
        ));

        println!("{}", w.render());
        panic!();
    }
}

Rust Playground: https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=74d2f4fea3063d734092cc9355836b46

Meta

rustc --version --verbose:

rustc 1.91.0-nightly (69b76df90 2025-08-23)

This also happens on stable:

rustc +stable --version --verbose:

rustc 1.89.0 (29483883e 2025-08-04)
Error output

See also the Playground (running Test with either nightly or stable):

thread 'rustc' panicked at /rustc-dev/29483883eed69d5fb4db01964cdf2af4d86e9cb2/compiler/rustc_type_ir/src/binder.rs:753:9:
type parameter `T/#2` (T/#2/2) out of range when instantiating, args=[?8c, ?9c]
stack backtrace:

thread 'rustc' panicked at /rustc-dev/29483883eed69d5fb4db01964cdf2af4d86e9cb2/compiler/rustc_type_ir/src/binder.rs:753:9:
type parameter `T/#2` (T/#2/2) out of range when instantiating, args=[?8c, ?9c]
stack backtrace:
   0:     0x7434ec4d8203 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hf435e8e9347709a8
   1:     0x7434ecc02bff - core::fmt::write::h0a51fad3804c5e7c
   2:     0x7434ee0d1591 - std::io::Write::write_fmt::h9759e4151bf4a45e
   3:     0x7434ec4d8062 - std::sys::backtrace::BacktraceLock::print::h1ec5ce5bb8ee285e
   4:     0x7434ec4dbb5a - std::panicking::default_hook::{{closure}}::h5ffefe997a3c75e4
   5:     0x7434ec4db6df - std::panicking::default_hook::h820c77ba0601d6bb
   6:     0x7434eb5c9103 - std[da76efc55aba569b]::panicking::update_hook::<alloc[679dddab44c6194d]::boxed::Box<rustc_driver_impl[aa7064ecaea87566]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7434ec4dc3ab - std::panicking::rust_panic_with_hook::h8b29cbe181d50030
   8:     0x7434ec4dc0aa - std::panicking::begin_panic_handler::{{closure}}::h9f5b6f6dc6fde83e
   9:     0x7434ec4d86d9 - std::sys::backtrace::__rust_end_short_backtrace::hd7b0c344383b0b61
  10:     0x7434ec4dbd8d - __rustc[5224e6b81cd82a8f]::rust_begin_unwind
  11:     0x7434e8c91480 - core::panicking::panic_fmt::hc49fc28484033487
  12:     0x7434ebb517f9 - <rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::type_param_out_of_range
  13:     0x7434ecd4fa67 - <rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_ty
  14:     0x7434ecd4b8cf - <&rustc_middle[e0a019250b2560b5]::ty::list::RawList<(), rustc_middle[e0a019250b2560b5]::ty::generic_args::GenericArg> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFoldable<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_with::<rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>
  15:     0x7434ecd4f5f0 - <rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_ty
  16:     0x7434ecd4b2ce - <&rustc_middle[e0a019250b2560b5]::ty::list::RawList<(), rustc_middle[e0a019250b2560b5]::ty::generic_args::GenericArg> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFoldable<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_with::<rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>
  17:     0x7434edb66d63 - <rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_const
  18:     0x7434ecec96cf - rustc_trait_selection[42934b2ac3511e78]::traits::project::confirm_candidate
  19:     0x7434ecebb45c - rustc_trait_selection[42934b2ac3511e78]::traits::project::opt_normalize_projection_term
  20:     0x7434ed5dd442 - <rustc_trait_selection[42934b2ac3511e78]::traits::fulfill::FulfillProcessor as rustc_data_structures[f798075dc9c9ee18]::obligation_forest::ObligationProcessor>::process_obligation
  21:     0x7434ecc05942 - <rustc_data_structures[f798075dc9c9ee18]::obligation_forest::ObligationForest<rustc_trait_selection[42934b2ac3511e78]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[42934b2ac3511e78]::traits::fulfill::FulfillProcessor>
  22:     0x7434eccb8319 - <rustc_hir_typeck[f7b17b06701b8912]::fn_ctxt::FnCtxt>::check_expr_call
   0:     0x7230e10d8203 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hf435e8e9347709a8
   1:     0x7230e1802bff - core::fmt::write::h0a51fad3804c5e7c
   2:     0x7230e2cd1591 - std::io::Write::write_fmt::h9759e4151bf4a45e
   3:     0x7230e10d8062 - std::sys::backtrace::BacktraceLock::print::h1ec5ce5bb8ee285e
   4:     0x7230e10dbb5a - std::panicking::default_hook::{{closure}}::h5ffefe997a3c75e4
  23:     0x7434ed655ad3 - <rustc_hir_typeck[f7b17b06701b8912]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
   5:     0x7230e10db6df - std::panicking::default_hook::h820c77ba0601d6bb
   6:     0x7230e01c9103 - std[da76efc55aba569b]::panicking::update_hook::<alloc[679dddab44c6194d]::boxed::Box<rustc_driver_impl[aa7064ecaea87566]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7230e10dc3ab - std::panicking::rust_panic_with_hook::h8b29cbe181d50030
   8:     0x7230e10dc0aa - std::panicking::begin_panic_handler::{{closure}}::h9f5b6f6dc6fde83e
   9:     0x7230e10d86d9 - std::sys::backtrace::__rust_end_short_backtrace::hd7b0c344383b0b61
  10:     0x7230e10dbd8d - __rustc[5224e6b81cd82a8f]::rust_begin_unwind
  11:     0x7230dd891480 - core::panicking::panic_fmt::hc49fc28484033487
  12:     0x7230e07517f9 - <rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::type_param_out_of_range
  13:     0x7230e194fa67 - <rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_ty
  14:     0x7230e194b8cf - <&rustc_middle[e0a019250b2560b5]::ty::list::RawList<(), rustc_middle[e0a019250b2560b5]::ty::generic_args::GenericArg> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFoldable<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_with::<rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>
  15:     0x7230e194f5f0 - <rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_ty
  16:     0x7230e194b2ce - <&rustc_middle[e0a019250b2560b5]::ty::list::RawList<(), rustc_middle[e0a019250b2560b5]::ty::generic_args::GenericArg> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFoldable<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_with::<rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>
  17:     0x7230e2766d63 - <rustc_type_ir[f5f28a7ad4569220]::binder::ArgFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt> as rustc_type_ir[f5f28a7ad4569220]::fold::TypeFolder<rustc_middle[e0a019250b2560b5]::ty::context::TyCtxt>>::fold_const
  18:     0x7230e1ac96cf - rustc_trait_selection[42934b2ac3511e78]::traits::project::confirm_candidate
  19:     0x7230e1abb45c - rustc_trait_selection[42934b2ac3511e78]::traits::project::opt_normalize_projection_term
  20:     0x7230e21dd442 - <rustc_trait_selection[42934b2ac3511e78]::traits::fulfill::FulfillProcessor as rustc_data_structures[f798075dc9c9ee18]::obligation_forest::ObligationProcessor>::process_obligation
  21:     0x7230e1805942 - <rustc_data_structures[f798075dc9c9ee18]::obligation_forest::ObligationForest<rustc_trait_selection[42934b2ac3511e78]::traits::fulfill::PendingPredicateObligation>>::process_obligations::<rustc_trait_selection[42934b2ac3511e78]::traits::fulfill::FulfillProcessor>
  22:     0x7230e18b8319 - <rustc_hir_typeck[f7b17b06701b8912]::fn_ctxt::FnCtxt>::check_expr_call
  23:     0x7230e2255ad3 - <rustc_hir_typeck[f7b17b06701b8912]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  24:     0x7230e223187d - <rustc_hir_typeck[f7b17b06701b8912]::fn_ctxt::FnCtxt>::check_expr_block
  25:     0x7230e225600c - <rustc_hir_typeck[f7b17b06701b8912]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  26:     0x7230e223be2e - rustc_hir_typeck[f7b17b06701b8912]::check::check_fn
  27:     0x7230e2a0244b - rustc_hir_typeck[f7b17b06701b8912]::typeck_with_inspect::{closure#0}
  28:     0x7230e29eebb0 - rustc_query_impl[36e6800b9757404d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[36e6800b9757404d]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e0a019250b2560b5]::query::erase::Erased<[u8; 8usize]>>
  24:     0x7434ed63187d - <rustc_hir_typeck[f7b17b06701b8912]::fn_ctxt::FnCtxt>::check_expr_block
  25:     0x7434ed65600c - <rustc_hir_typeck[f7b17b06701b8912]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  26:     0x7434ed63be2e - rustc_hir_typeck[f7b17b06701b8912]::check::check_fn
  27:     0x7434ede0244b - rustc_hir_typeck[f7b17b06701b8912]::typeck_with_inspect::{closure#0}
  28:     0x7434eddeebb0 - rustc_query_impl[36e6800b9757404d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[36e6800b9757404d]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e0a019250b2560b5]::query::erase::Erased<[u8; 8usize]>>
  29:     0x7434ece676ae - rustc_query_system[4eadbad177027a71]::query::plumbing::try_execute_query::<rustc_query_impl[36e6800b9757404d]::DynamicConfig<rustc_data_structures[f798075dc9c9ee18]::vec_cache::VecCache<rustc_span[93f6ac7b0b889bbe]::def_id::LocalDefId, rustc_middle[e0a019250b2560b5]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[4eadbad177027a71]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[36e6800b9757404d]::plumbing::QueryCtxt, false>
  30:     0x7434ece67049 - rustc_query_impl[36e6800b9757404d]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  31:     0x7434ece6f846 - rustc_hir_analysis[896fe3c446b223d6]::check_crate
  32:     0x7434ed56ec59 - rustc_interface[5344109f4998426e]::passes::analysis
  33:     0x7434ed56e875 - rustc_query_impl[36e6800b9757404d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[36e6800b9757404d]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e0a019250b2560b5]::query::erase::Erased<[u8; 0usize]>>
  34:     0x7434edc6fbc8 - rustc_query_system[4eadbad177027a71]::query::plumbing::try_execute_query::<rustc_query_impl[36e6800b9757404d]::DynamicConfig<rustc_query_system[4eadbad177027a71]::query::caches::SingleCache<rustc_middle[e0a019250b2560b5]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[36e6800b9757404d]::plumbing::QueryCtxt, false>
  35:     0x7434edc6f792 - rustc_query_impl[36e6800b9757404d]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  36:     0x7434ee047f16 - rustc_interface[5344109f4998426e]::passes::create_and_enter_global_ctxt::<core[4727a1a5e2f8bf41]::option::Option<rustc_interface[5344109f4998426e]::queries::Linker>, rustc_driver_impl[aa7064ecaea87566]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
  37:     0x7434edeea125 - rustc_interface[5344109f4998426e]::interface::run_compiler::<(), rustc_driver_impl[aa7064ecaea87566]::run_compiler::{closure#0}>::{closure#1}
  38:     0x7434ede366b8 - std[da76efc55aba569b]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[5344109f4998426e]::util::run_in_thread_with_globals<rustc_interface[5344109f4998426e]::util::run_in_thread_pool_with_globals<rustc_interface[5344109f4998426e]::interface::run_compiler<(), rustc_driver_impl[aa7064ecaea87566]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  39:     0x7434ede36396 - <<std[da76efc55aba569b]::thread::Builder>::spawn_unchecked_<rustc_interface[5344109f4998426e]::util::run_in_thread_with_globals<rustc_interface[5344109f4998426e]::util::run_in_thread_pool_with_globals<rustc_interface[5344109f4998426e]::interface::run_compiler<(), rustc_driver_impl[aa7064ecaea87566]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[4727a1a5e2f8bf41]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  29:     0x7230e1a676ae - rustc_query_system[4eadbad177027a71]::query::plumbing::try_execute_query::<rustc_query_impl[36e6800b9757404d]::DynamicConfig<rustc_data_structures[f798075dc9c9ee18]::vec_cache::VecCache<rustc_span[93f6ac7b0b889bbe]::def_id::LocalDefId, rustc_middle[e0a019250b2560b5]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[4eadbad177027a71]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[36e6800b9757404d]::plumbing::QueryCtxt, false>
  40:     0x7434ede3c385 - std::sys::pal::unix::thread::Thread::new::thread_start::h1ff51d6e85162efd
  41:     0x7434e788aaa4 - <unknown>
  30:     0x7230e1a67049 - rustc_query_impl[36e6800b9757404d]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  42:     0x7434e7917a34 - clone
  31:     0x7230e1a6f846 - rustc_hir_analysis[896fe3c446b223d6]::check_crate
  43:                0x0 - <unknown>
  32:     0x7230e216ec59 - rustc_interface[5344109f4998426e]::passes::analysis

  33:     0x7230e216e875 - rustc_query_impl[36e6800b9757404d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[36e6800b9757404d]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e0a019250b2560b5]::query::erase::Erased<[u8; 0usize]>>
  34:     0x7230e286fbc8 - rustc_query_system[4eadbad177027a71]::query::plumbing::try_execute_query::<rustc_query_impl[36e6800b9757404d]::DynamicConfig<rustc_query_system[4eadbad177027a71]::query::caches::SingleCache<rustc_middle[e0a019250b2560b5]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[36e6800b9757404d]::plumbing::QueryCtxt, false>
  35:     0x7230e286f792 - rustc_query_impl[36e6800b9757404d]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  36:     0x7230e2c47f16 - rustc_interface[5344109f4998426e]::passes::create_and_enter_global_ctxt::<core[4727a1a5e2f8bf41]::option::Option<rustc_interface[5344109f4998426e]::queries::Linker>, rustc_driver_impl[aa7064ecaea87566]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
  37:     0x7230e2aea125 - rustc_interface[5344109f4998426e]::interface::run_compiler::<(), rustc_driver_impl[aa7064ecaea87566]::run_compiler::{closure#0}>::{closure#1}
  38:     0x7230e2a366b8 - std[da76efc55aba569b]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[5344109f4998426e]::util::run_in_thread_with_globals<rustc_interface[5344109f4998426e]::util::run_in_thread_pool_with_globals<rustc_interface[5344109f4998426e]::interface::run_compiler<(), rustc_driver_impl[aa7064ecaea87566]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  39:     0x7230e2a36396 - <<std[da76efc55aba569b]::thread::Builder>::spawn_unchecked_<rustc_interface[5344109f4998426e]::util::run_in_thread_with_globals<rustc_interface[5344109f4998426e]::util::run_in_thread_pool_with_globals<rustc_interface[5344109f4998426e]::interface::run_compiler<(), rustc_driver_impl[aa7064ecaea87566]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[4727a1a5e2f8bf41]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  40:     0x7230e2a3c385 - std::sys::pal::unix::thread::Thread::new::thread_start::h1ff51d6e85162efd
  41:     0x7230dc48aaa4 - <unknown>
  42:     0x7230dc517a34 - clone
  43:                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: rustc 1.89.0 (29483883e 2025-08-04) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [typeck] type-checking `<impl at src/lib.rs:49:1: 49:71>::empty`
#1 [analysis] running analysis passes on this crate
end of query stack
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: rustc 1.89.0 (29483883e 2025-08-04) running on x86_64-unknown-linux-gnu

For more information about this error, try `rustc --explain E0554`.
note: compiler flags: -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [typeck] type-checking `<impl at src/lib.rs:49:1: 49:71>::empty`
#1 [analysis] running analysis passes on this crate
end of query stack

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.