Skip to content

ICE: unexpected bound var resolution for HirId(DefId(..)) #115497

Closed
@matthiaskrgr

Description

@matthiaskrgr

Code

#![feature(generic_const_exprs)]
#![feature(non_lifetime_binders)]
#![feature(associated_type_bounds)]

trait TraitA<'a> { type AsA; }
trait TraitB<'a, 'b> { type AsB; }
trait TraitC<'a, 'b, 'c> {}
struct X;
struct Y;
struct Z;

fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}

fn main() {}

Meta

rustc --version --verbose:

rustc 1.74.0-nightly (9f5fc1bd4 2023-09-02)
binary: rustc
commit-hash: 9f5fc1bd443f59583e7af0d94d289f95fe1e20c4
commit-date: 2023-09-02
host: x86_64-unknown-linux-gnu
release: 1.74.0-nightly
LLVM version: 17.0.0

Error output

error[E0261]: use of undeclared lifetime name `'a`
  --> 3.rs:12:86
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>...
   |                                                                                      ^^ undeclared lifetime
   |
   = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: for<'a> TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                                                                               +++++++
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<'a, const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                       +++
help: consider introducing lifetime `'a` here
   |
12 | fn foo<'a, T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |        +++

error[E0261]: use of undeclared lifetime name `'a`
  --> 3.rs:12:110
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>...
   |                                                                                                              ^^ undeclared lifetime
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'a, 'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                                                                                                   +++
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: for<'a> TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                                                                               +++++++
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<'a, const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                       +++
help: consider introducing lifetime `'a` here
   |
12 | fn foo<'a, T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |        +++

error[E0261]: use of undeclared lifetime name `'a`
  --> 3.rs:12:138
   |
12 | ...T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                                                                  ^^ undeclared lifetime
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'a, 'c> TraitC<'a, 'b, 'c>>> {}
   |                                                                                                                               +++
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'a, 'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                                                                                                   +++
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: for<'a> TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                                                                               +++++++
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
12 | fn foo<T>() where for<'a, const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |                       +++
help: consider introducing lifetime `'a` here
   |
12 | fn foo<'a, T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>> {}
   |        +++

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

warning: the feature `non_lifetime_binders` is incomplete and may not be safe to use and/or cause compiler crashes
 --> 3.rs:2:12
  |
2 | #![feature(non_lifetime_binders)]
  |            ^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #108185 <https://github.com/rust-lang/rust/issues/108185> for more information

error[E0109]: const arguments are not allowed on type parameter `T`
  --> 3.rs:12:43
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>...
   |                                       -   ^ const argument not allowed
   |                                       |
   |                                       not allowed on type parameter `T`
   |
note: type parameter `T` defined here
  --> 3.rs:12:8
   |
12 | fn foo<T>() where for<const N: u8 = { T::<0>::A as u8 + T::<0>::B as u8 }> T: TraitA<'a, AsA: for<'b> TraitB<'a, 'b, AsB: for<'c> TraitC<'a, 'b, 'c>>...
   |        ^
Backtrace

error: internal compiler error: compiler/rustc_hir_analysis/src/astconv/mod.rs:2227:28: unexpected bound var resolution for HirId(DefId(0:20 ~ 3[e25a]::foo).14): None

thread 'rustc' panicked at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/compiler/rustc_errors/src/lib.rs:1651:9:
Box<dyn Any>
stack backtrace:
   0:     0x7fdb44763dec - std::backtrace_rs::backtrace::libunwind::trace::hdcb9c0b22500da91
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fdb44763dec - std::backtrace_rs::backtrace::trace_unsynchronized::h91b351fd34050178
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fdb44763dec - std::sys_common::backtrace::_print_fmt::he469089ab3fbd8a5
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/sys_common/backtrace.rs:67:5
   3:     0x7fdb44763dec - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h57d5e31c47a8a531
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fdb447ca05c - core::fmt::rt::Argument::fmt::h6e8bafe434c307b3
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/core/src/fmt/rt.rs:138:9
   5:     0x7fdb447ca05c - core::fmt::write::hbf1ef8babec800ef
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/core/src/fmt/mod.rs:1094:21
   6:     0x7fdb447568fe - std::io::Write::write_fmt::h3273b2319fbd2ddc
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/io/mod.rs:1714:15
   7:     0x7fdb44763bd4 - std::sys_common::backtrace::_print::h9f429c8b9622817f
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7fdb44763bd4 - std::sys_common::backtrace::print::h3e62e3dc9cc0960c
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7fdb44766cea - std::panicking::panic_hook_with_disk_dump::{{closure}}::h336ab5ed5f752f5b
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/panicking.rs:280:22
  10:     0x7fdb447669e5 - std::panicking::panic_hook_with_disk_dump::h0b2ed72036e73f37
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/panicking.rs:314:9
  11:     0x7fdb4794d079 - rustc_driver_impl[bd3214347f952018]::install_ice_hook::{closure#0}
  12:     0x7fdb447675a3 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hf5daf4aeb8dae1f0
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/alloc/src/boxed.rs:2021:9
  13:     0x7fdb447675a3 - std::panicking::rust_panic_with_hook::h725e440d3f428ec3
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/panicking.rs:757:13
  14:     0x7fdb47ea7d94 - std[15568f5d89cfcf8b]::panicking::begin_panic::<rustc_errors[c5bbdc7440f4c02c]::ExplicitBug>::{closure#0}
  15:     0x7fdb47ea5076 - std[15568f5d89cfcf8b]::sys_common::backtrace::__rust_end_short_backtrace::<std[15568f5d89cfcf8b]::panicking::begin_panic<rustc_errors[c5bbdc7440f4c02c]::ExplicitBug>::{closure#0}, !>
  16:     0x7fdb47f09456 - std[15568f5d89cfcf8b]::panicking::begin_panic::<rustc_errors[c5bbdc7440f4c02c]::ExplicitBug>
  17:     0x7fdb47e63994 - <rustc_errors[c5bbdc7440f4c02c]::HandlerInner>::bug::<alloc[8c08642181f67925]::string::String>
  18:     0x7fdb47e63826 - <rustc_errors[c5bbdc7440f4c02c]::Handler>::bug::<alloc[8c08642181f67925]::string::String>
  19:     0x7fdb47ed738c - rustc_middle[a400c0366bd3264d]::util::bug::opt_span_bug_fmt::<rustc_span[d6219d1cb1a2cd02]::span_encoding::Span>::{closure#0}
  20:     0x7fdb47ed616a - rustc_middle[a400c0366bd3264d]::ty::context::tls::with_opt::<rustc_middle[a400c0366bd3264d]::util::bug::opt_span_bug_fmt<rustc_span[d6219d1cb1a2cd02]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  21:     0x7fdb47ed6138 - rustc_middle[a400c0366bd3264d]::ty::context::tls::with_context_opt::<rustc_middle[a400c0366bd3264d]::ty::context::tls::with_opt<rustc_middle[a400c0366bd3264d]::util::bug::opt_span_bug_fmt<rustc_span[d6219d1cb1a2cd02]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  22:     0x7fdb45be4920 - rustc_middle[a400c0366bd3264d]::util::bug::bug_fmt
  23:     0x7fdb4677f40c - <dyn rustc_hir_analysis[f4190e851159bd14]::astconv::AstConv>::res_to_ty
  24:     0x7fdb46778c90 - <dyn rustc_hir_analysis[f4190e851159bd14]::astconv::AstConv>::ast_ty_to_ty_inner::{closure#0}
  25:     0x7fdb45cd3610 - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_expr_path
  26:     0x7fdb45c9af8f - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  27:     0x7fdb45c9e820 - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  28:     0x7fdb45d32a9e - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_overloaded_binop
  29:     0x7fdb45cac5e9 - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_binop
  30:     0x7fdb45c9ca29 - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  31:     0x7fdb45ccdacd - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_block_with_expected
  32:     0x7fdb45c9bd5d - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  33:     0x7fdb45c97d36 - <rustc_hir_typeck[2c4653fa0fac3fb]::fn_ctxt::FnCtxt>::check_expr_coercible_to_type
  34:     0x7fdb469766d8 - rustc_hir_typeck[2c4653fa0fac3fb]::typeck
  35:     0x7fdb45a57cae - rustc_query_impl[2b96a7f183453ea1]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2b96a7f183453ea1]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a400c0366bd3264d]::query::erase::Erased<[u8; 8usize]>>
  36:     0x7fdb45a57c7e - <rustc_query_impl[2b96a7f183453ea1]::query_impl::typeck::dynamic_query::{closure#2} as core[afd64c1140d34ddb]::ops::function::FnOnce<(rustc_middle[a400c0366bd3264d]::ty::context::TyCtxt, rustc_span[d6219d1cb1a2cd02]::def_id::LocalDefId)>>::call_once
  37:     0x7fdb45b49222 - rustc_query_system[f349c9744a75bab0]::query::plumbing::try_execute_query::<rustc_query_impl[2b96a7f183453ea1]::DynamicConfig<rustc_query_system[f349c9744a75bab0]::query::caches::VecCache<rustc_span[d6219d1cb1a2cd02]::def_id::LocalDefId, rustc_middle[a400c0366bd3264d]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[2b96a7f183453ea1]::plumbing::QueryCtxt, false>
  38:     0x7fdb472e9901 - rustc_query_impl[2b96a7f183453ea1]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  39:     0x7fdb45b76dfa - rustc_query_impl[2b96a7f183453ea1]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2b96a7f183453ea1]::query_impl::used_trait_imports::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a400c0366bd3264d]::query::erase::Erased<[u8; 8usize]>>
  40:     0x7fdb45b76d0e - <rustc_query_impl[2b96a7f183453ea1]::query_impl::used_trait_imports::dynamic_query::{closure#2} as core[afd64c1140d34ddb]::ops::function::FnOnce<(rustc_middle[a400c0366bd3264d]::ty::context::TyCtxt, rustc_span[d6219d1cb1a2cd02]::def_id::LocalDefId)>>::call_once
  41:     0x7fdb45b49222 - rustc_query_system[f349c9744a75bab0]::query::plumbing::try_execute_query::<rustc_query_impl[2b96a7f183453ea1]::DynamicConfig<rustc_query_system[f349c9744a75bab0]::query::caches::VecCache<rustc_span[d6219d1cb1a2cd02]::def_id::LocalDefId, rustc_middle[a400c0366bd3264d]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[2b96a7f183453ea1]::plumbing::QueryCtxt, false>
  42:     0x7fdb472e9c71 - rustc_query_impl[2b96a7f183453ea1]::query_impl::used_trait_imports::get_query_non_incr::__rust_end_short_backtrace
  43:     0x7fdb47065ece - rustc_hir_analysis[f4190e851159bd14]::check_unused::check_unused_traits
  44:     0x7fdb46dd0caa - rustc_query_impl[2b96a7f183453ea1]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2b96a7f183453ea1]::query_impl::check_unused_traits::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a400c0366bd3264d]::query::erase::Erased<[u8; 0usize]>>
  45:     0x7fdb46dd0c99 - <rustc_query_impl[2b96a7f183453ea1]::query_impl::check_unused_traits::dynamic_query::{closure#2} as core[afd64c1140d34ddb]::ops::function::FnOnce<(rustc_middle[a400c0366bd3264d]::ty::context::TyCtxt, ())>>::call_once
  46:     0x7fdb470256cd - rustc_query_system[f349c9744a75bab0]::query::plumbing::try_execute_query::<rustc_query_impl[2b96a7f183453ea1]::DynamicConfig<rustc_query_system[f349c9744a75bab0]::query::caches::SingleCache<rustc_middle[a400c0366bd3264d]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[2b96a7f183453ea1]::plumbing::QueryCtxt, false>
  47:     0x7fdb472e6d19 - rustc_query_impl[2b96a7f183453ea1]::query_impl::check_unused_traits::get_query_non_incr::__rust_end_short_backtrace
  48:     0x7fdb46bbd31b - rustc_hir_analysis[f4190e851159bd14]::check_crate
  49:     0x7fdb46bbc172 - rustc_interface[32fae85809e14be6]::passes::analysis
  50:     0x7fdb46dc51ca - rustc_query_impl[2b96a7f183453ea1]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[2b96a7f183453ea1]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[a400c0366bd3264d]::query::erase::Erased<[u8; 1usize]>>
  51:     0x7fdb46dc51b9 - <rustc_query_impl[2b96a7f183453ea1]::query_impl::analysis::dynamic_query::{closure#2} as core[afd64c1140d34ddb]::ops::function::FnOnce<(rustc_middle[a400c0366bd3264d]::ty::context::TyCtxt, ())>>::call_once
  52:     0x7fdb4707e394 - rustc_query_system[f349c9744a75bab0]::query::plumbing::try_execute_query::<rustc_query_impl[2b96a7f183453ea1]::DynamicConfig<rustc_query_system[f349c9744a75bab0]::query::caches::SingleCache<rustc_middle[a400c0366bd3264d]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[2b96a7f183453ea1]::plumbing::QueryCtxt, false>
  53:     0x7fdb4707e109 - rustc_query_impl[2b96a7f183453ea1]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  54:     0x7fdb46f793f3 - <rustc_middle[a400c0366bd3264d]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[bd3214347f952018]::run_compiler::{closure#1}::{closure#2}::{closure#6}, core[afd64c1140d34ddb]::result::Result<(), rustc_span[d6219d1cb1a2cd02]::ErrorGuaranteed>>
  55:     0x7fdb46e7d4ec - <rustc_interface[32fae85809e14be6]::interface::Compiler>::enter::<rustc_driver_impl[bd3214347f952018]::run_compiler::{closure#1}::{closure#2}, core[afd64c1140d34ddb]::result::Result<core[afd64c1140d34ddb]::option::Option<rustc_interface[32fae85809e14be6]::queries::Linker>, rustc_span[d6219d1cb1a2cd02]::ErrorGuaranteed>>
  56:     0x7fdb46e74ce8 - std[15568f5d89cfcf8b]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[32fae85809e14be6]::util::run_in_thread_with_globals<rustc_interface[32fae85809e14be6]::interface::run_compiler<core[afd64c1140d34ddb]::result::Result<(), rustc_span[d6219d1cb1a2cd02]::ErrorGuaranteed>, rustc_driver_impl[bd3214347f952018]::run_compiler::{closure#1}>::{closure#0}, core[afd64c1140d34ddb]::result::Result<(), rustc_span[d6219d1cb1a2cd02]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[afd64c1140d34ddb]::result::Result<(), rustc_span[d6219d1cb1a2cd02]::ErrorGuaranteed>>
  57:     0x7fdb46e7445e - <<std[15568f5d89cfcf8b]::thread::Builder>::spawn_unchecked_<rustc_interface[32fae85809e14be6]::util::run_in_thread_with_globals<rustc_interface[32fae85809e14be6]::interface::run_compiler<core[afd64c1140d34ddb]::result::Result<(), rustc_span[d6219d1cb1a2cd02]::ErrorGuaranteed>, rustc_driver_impl[bd3214347f952018]::run_compiler::{closure#1}>::{closure#0}, core[afd64c1140d34ddb]::result::Result<(), rustc_span[d6219d1cb1a2cd02]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[afd64c1140d34ddb]::result::Result<(), rustc_span[d6219d1cb1a2cd02]::ErrorGuaranteed>>::{closure#1} as core[afd64c1140d34ddb]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  58:     0x7fdb44772015 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::he46350f6bfcc0e8a
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/alloc/src/boxed.rs:2007:9
  59:     0x7fdb44772015 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h4038c4c7fc344b18
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/alloc/src/boxed.rs:2007:9
  60:     0x7fdb44772015 - std::sys::unix::thread::Thread::new::thread_start::h842f0d826bbbe958
                               at /rustc/9f5fc1bd443f59583e7af0d94d289f95fe1e20c4/library/std/src/sys/unix/thread.rs:108:17
  61:     0x7fdb4448c9eb - <unknown>
  62:     0x7fdb44510dfc - <unknown>
  63:                0x0 - <unknown>

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-2023-09-03T08:45:04.608615707Z-762397.txt` to your bug report

query stack during panic:
#0 [typeck] type-checking `foo::{constant#0}`
#1 [used_trait_imports] finding used_trait_imports `foo::{constant#0}`
#2 [check_unused_traits] checking unused trait imports in crate
#3 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 5 previous errors; 2 warnings emitted

Some errors have detailed explanations: E0109, E0261.
For more information about an error, try `rustc --explain E0109`.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.F-associated_type_bounds`#![feature(associated_type_bounds)]`F-generic_const_exprs`#![feature(generic_const_exprs)]`F-non_lifetime_binders`#![feature(non_lifetime_binders)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.requires-incomplete-featuresThis issue requires the use of incomplete features.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions