Skip to content

[ICE]: delegtation: DefId does not have a "generics_of" #153743

@matthiaskrgr

Description

@matthiaskrgr

auto-reduced (treereduce-rust):

trait Trait{
    fn bar3();
}
impl Trait for () {
    reuse std::path::<> as bar3;
}

fn main() {}

original:

#![feature(fn_delegation)]
trait Trait{
    fn bar3();
}
impl Trait for () {
    reuse std::path::<> as bar3;
}

fn main() {}

Version information

rustc 1.96.0-nightly (3b1b0ef4d 2026-03-11)
binary: rustc
commit-hash: 3b1b0ef4d80d3117924d91352c8b6ca528708b3c
commit-date: 2026-03-11
host: x86_64-unknown-linux-gnu
release: 1.96.0-nightly
LLVM version: 22.1.0

Possibly related line of code:

type Other = SimplifiedType;
fn into_args(self) -> (DefId, SimplifiedType) {
(self.0.as_def_id(), self.1)
}
}
provide! { tcx, def_id, other, cdata,
explicit_item_bounds => { table_defaulted_array }
explicit_item_self_bounds => { table_defaulted_array }
explicit_predicates_of => { table }
generics_of => { table }
inferred_outlives_of => { table_defaulted_array }
explicit_super_predicates_of => { table_defaulted_array }

Command:
/home/matthias/.rustup/toolchains/master/bin/rustc

Program output

error[E0423]: expected function, found module `std::path`
 --> /tmp/icemaker_global_tempdir.ZImCP54Bycrz/rustc_testrunner_tmpdir_reporting.mCqCl4GzZpLy/mvce.rs:6:11
  |
6 |     reuse std::path::<> as bar3;
  |           ^^^^^^^^^^^^^ not a function

error[E0658]: functions delegation is not yet fully implemented
 --> /tmp/icemaker_global_tempdir.ZImCP54Bycrz/rustc_testrunner_tmpdir_reporting.mCqCl4GzZpLy/mvce.rs:6:5
  |
6 |     reuse std::path::<> as bar3;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #118212 <https://github.com/rust-lang/rust/issues/118212> for more information
  = help: add `#![feature(fn_delegation)]` to the crate attributes to enable
  = note: this compiler was built on 2026-03-11; consider upgrading it if it is out of date


thread 'rustc' (897714) panicked at /rustc-dev/3b1b0ef4d80d3117924d91352c8b6ca528708b3c/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs:226:1:
DefId(1:5853 ~ std[98a2]::path) does not have a "generics_of"
stack backtrace:
   0:     0x7f6c449488db - <<std[98a29328132e9808]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[d6e61f80bd84b1aa]::fmt::Display>::fmt
   1:     0x7f6c4501cd08 - core[d6e61f80bd84b1aa]::fmt::write
   2:     0x7f6c4495f8e6 - <std[98a29328132e9808]::sys::stdio::unix::Stderr as std[98a29328132e9808]::io::Write>::write_fmt
   3:     0x7f6c4491e9c8 - std[98a29328132e9808]::panicking::default_hook::{closure#0}
   4:     0x7f6c4493bd53 - std[98a29328132e9808]::panicking::default_hook
   5:     0x7f6c43936a0c - std[98a29328132e9808]::panicking::update_hook::<alloc[181a33ef8c443c3d]::boxed::Box<rustc_driver_impl[da6c6aa1c22ed2c8]::install_ice_hook::{closure#1}>>::{closure#0}
   6:     0x7f6c4493c032 - std[98a29328132e9808]::panicking::panic_with_hook
   7:     0x7f6c4491ea88 - std[98a29328132e9808]::panicking::panic_handler::{closure#0}
   8:     0x7f6c449157b9 - std[98a29328132e9808]::sys::backtrace::__rust_end_short_backtrace::<std[98a29328132e9808]::panicking::panic_handler::{closure#0}, !>
   9:     0x7f6c449204ed - __rustc[9ef169d0760644a0]::rust_begin_unwind
  10:     0x7f6c414f39cc - core[d6e61f80bd84b1aa]::panicking::panic_fmt
  11:     0x7f6c43eeaba1 - rustc_metadata[bcf0c905d224dcbb]::rmeta::decoder::cstore_impl::provide_extern::generics_of::{closure#2}
  12:     0x7f6c4505b451 - rustc_metadata[bcf0c905d224dcbb]::rmeta::decoder::cstore_impl::provide_extern::generics_of
  13:     0x7f6c4505c506 - rustc_query_impl[62dde3202d61a64e]::query_impl::generics_of::invoke_provider_fn::__rust_begin_short_backtrace
  14:     0x7f6c4505cb49 - rustc_query_impl[62dde3202d61a64e]::execution::try_execute_query::<rustc_middle[c5a7798a8191db22]::query::caches::DefIdCache<rustc_middle[c5a7798a8191db22]::query::erase::ErasedData<[u8; 8usize]>>, false>
  15:     0x7f6c4505c850 - rustc_query_impl[62dde3202d61a64e]::query_impl::generics_of::execute_query_non_incr::__rust_end_short_backtrace
  16:     0x7f6c455c495c - <dyn rustc_hir_analysis[fb7797e3d1a18a57]::hir_ty_lowering::HirTyLowerer>::lower_generic_args_of_path::{closure#0}
  17:     0x7f6c43ad342d - rustc_hir_analysis[fb7797e3d1a18a57]::delegation::get_delegation_user_specified_args
  18:     0x7f6c43ad261f - rustc_hir_analysis[fb7797e3d1a18a57]::delegation::inherit_sig_for_delegation_item
  19:     0x7f6c443fbc82 - rustc_query_impl[62dde3202d61a64e]::query_impl::inherit_sig_for_delegation_item::invoke_provider_fn::__rust_begin_short_backtrace
  20:     0x7f6c4587e71e - rustc_query_impl[62dde3202d61a64e]::execution::try_execute_query::<rustc_data_structures[3406ed04c82e19df]::vec_cache::VecCache<rustc_span[2b7bdaa576714e8d]::def_id::LocalDefId, rustc_middle[c5a7798a8191db22]::query::erase::ErasedData<[u8; 16usize]>, rustc_middle[c5a7798a8191db22]::dep_graph::graph::DepNodeIndex>, false>
  21:     0x7f6c443fbcea - rustc_query_impl[62dde3202d61a64e]::query_impl::inherit_sig_for_delegation_item::execute_query_non_incr::__rust_end_short_backtrace
  22:     0x7f6c455d197b - <dyn rustc_hir_analysis[fb7797e3d1a18a57]::hir_ty_lowering::HirTyLowerer>::lower_ty
  23:     0x7f6c455b4af2 - <dyn rustc_hir_analysis[fb7797e3d1a18a57]::hir_ty_lowering::HirTyLowerer>::lower_fn_ty
  24:     0x7f6c45254cfc - rustc_hir_analysis[fb7797e3d1a18a57]::collect::fn_sig
  25:     0x7f6c45254466 - rustc_query_impl[62dde3202d61a64e]::query_impl::fn_sig::invoke_provider_fn::__rust_begin_short_backtrace
  26:     0x7f6c45258a8e - rustc_query_impl[62dde3202d61a64e]::execution::try_execute_query::<rustc_middle[c5a7798a8191db22]::query::caches::DefIdCache<rustc_middle[c5a7798a8191db22]::query::erase::ErasedData<[u8; 24usize]>>, false>
  27:     0x7f6c45258093 - rustc_query_impl[62dde3202d61a64e]::query_impl::fn_sig::execute_query_non_incr::__rust_end_short_backtrace
  28:     0x7f6c458854eb - rustc_hir_analysis[fb7797e3d1a18a57]::check::compare_impl_item::check_method_is_structurally_compatible
  29:     0x7f6c4588a923 - rustc_hir_analysis[fb7797e3d1a18a57]::check::compare_impl_item::compare_impl_item
  30:     0x7f6c4588a4d9 - rustc_query_impl[62dde3202d61a64e]::query_impl::compare_impl_item::invoke_provider_fn::__rust_begin_short_backtrace
  31:     0x7f6c4559567f - rustc_query_impl[62dde3202d61a64e]::execution::try_execute_query::<rustc_data_structures[3406ed04c82e19df]::vec_cache::VecCache<rustc_span[2b7bdaa576714e8d]::def_id::LocalDefId, rustc_middle[c5a7798a8191db22]::query::erase::ErasedData<[u8; 1usize]>, rustc_middle[c5a7798a8191db22]::dep_graph::graph::DepNodeIndex>, false>
  32:     0x7f6c455951b6 - rustc_query_impl[62dde3202d61a64e]::query_impl::compare_impl_item::execute_query_non_incr::__rust_end_short_backtrace
  33:     0x7f6c455985f2 - rustc_hir_analysis[fb7797e3d1a18a57]::check::check::check_item_type
  34:     0x7f6c4559609c - rustc_hir_analysis[fb7797e3d1a18a57]::check::wfcheck::check_well_formed
  35:     0x7f6c4559606d - rustc_query_impl[62dde3202d61a64e]::query_impl::check_well_formed::invoke_provider_fn::__rust_begin_short_backtrace
  36:     0x7f6c4559567f - rustc_query_impl[62dde3202d61a64e]::execution::try_execute_query::<rustc_data_structures[3406ed04c82e19df]::vec_cache::VecCache<rustc_span[2b7bdaa576714e8d]::def_id::LocalDefId, rustc_middle[c5a7798a8191db22]::query::erase::ErasedData<[u8; 1usize]>, rustc_middle[c5a7798a8191db22]::dep_graph::graph::DepNodeIndex>, false>
  37:     0x7f6c45595407 - rustc_query_impl[62dde3202d61a64e]::query_impl::check_well_formed::execute_query_non_incr::__rust_end_short_backtrace
  38:     0x7f6c45592333 - rustc_hir_analysis[fb7797e3d1a18a57]::check::wfcheck::check_type_wf
  39:     0x7f6c4559222f - rustc_query_impl[62dde3202d61a64e]::query_impl::check_type_wf::invoke_provider_fn::__rust_begin_short_backtrace
  40:     0x7f6c462a309c - rustc_query_impl[62dde3202d61a64e]::execution::try_execute_query::<rustc_middle[c5a7798a8191db22]::query::caches::SingleCache<rustc_middle[c5a7798a8191db22]::query::erase::ErasedData<[u8; 1usize]>>, false>
  41:     0x7f6c462a2e77 - rustc_query_impl[62dde3202d61a64e]::query_impl::check_type_wf::execute_query_non_incr::__rust_end_short_backtrace
  42:     0x7f6c45a3c2d5 - rustc_hir_analysis[fb7797e3d1a18a57]::check_crate
  43:     0x7f6c451400d3 - rustc_interface[165454881ff1a59b]::passes::analysis
  44:     0x7f6c462a2409 - rustc_query_impl[62dde3202d61a64e]::execution::try_execute_query::<rustc_middle[c5a7798a8191db22]::query::caches::SingleCache<rustc_middle[c5a7798a8191db22]::query::erase::ErasedData<[u8; 0usize]>>, false>
  45:     0x7f6c462a20e9 - rustc_query_impl[62dde3202d61a64e]::query_impl::analysis::execute_query_non_incr::__rust_end_short_backtrace
  46:     0x7f6c46256248 - rustc_interface[165454881ff1a59b]::interface::run_compiler::<(), rustc_driver_impl[da6c6aa1c22ed2c8]::run_compiler::{closure#0}>::{closure#1}
  47:     0x7f6c4627b1fe - std[98a29328132e9808]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[165454881ff1a59b]::util::run_in_thread_with_globals<rustc_interface[165454881ff1a59b]::util::run_in_thread_pool_with_globals<rustc_interface[165454881ff1a59b]::interface::run_compiler<(), rustc_driver_impl[da6c6aa1c22ed2c8]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  48:     0x7f6c4627baa0 - <std[98a29328132e9808]::thread::lifecycle::spawn_unchecked<rustc_interface[165454881ff1a59b]::util::run_in_thread_with_globals<rustc_interface[165454881ff1a59b]::util::run_in_thread_pool_with_globals<rustc_interface[165454881ff1a59b]::interface::run_compiler<(), rustc_driver_impl[da6c6aa1c22ed2c8]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[d6e61f80bd84b1aa]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  49:     0x7f6c4627c92c - <std[98a29328132e9808]::sys::thread::unix::Thread>::new::thread_start
  50:     0x7f6c3fca598b - <unknown>
  51:     0x7f6c3fd29a0c - <unknown>
  52:                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 make sure that you have updated to the latest nightly

note: rustc 1.96.0-nightly (3b1b0ef4d 2026-03-11) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [generics_of] computing generics of `std::path`
#1 [inherit_sig_for_delegation_item] inheriting delegation signature
#2 [fn_sig] computing function signature of `<impl at /tmp/icemaker_global_tempdir.ZImCP54Bycrz/rustc_testrunner_tmpdir_reporting.mCqCl4GzZpLy/mvce.rs:5:1: 5:18>::bar3`
#3 [compare_impl_item] checking assoc item `<impl at /tmp/icemaker_global_tempdir.ZImCP54Bycrz/rustc_testrunner_tmpdir_reporting.mCqCl4GzZpLy/mvce.rs:5:1: 5:18>::bar3` is compatible with trait definition
#4 [check_well_formed] checking that `<impl at /tmp/icemaker_global_tempdir.ZImCP54Bycrz/rustc_testrunner_tmpdir_reporting.mCqCl4GzZpLy/mvce.rs:5:1: 5:18>` is well-formed
#5 [check_type_wf] checking that types are well-formed
#6 [analysis] running analysis passes on crate `mvce`
end of query stack
error: aborting due to 2 previous errors

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

@rustbot label +F-fn_delegation

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.F-fn_delegation`#![feature(fn_delegation)]`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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions