Skip to content

ICE: / Hang found DefPathHash collision between DefPath { .. } and DefPath { .. } #143560

Closed
@matthiaskrgr

Description

@matthiaskrgr

Code

use std::ops::Deref;

trait Foo {
    fn foo() -> impl Deref<Target = impl Deref<Target = impl Sized>> {
        &&()
    }

    fn foo(b: bool) -> impl Sized {
        1u32
    }
}

fn main() {}

Meta

rustc --version --verbose:

rustc 1.90.0-nightly (0d11be5aa 2025-07-07)
binary: rustc
commit-hash: 0d11be5aabe0cd49609fff5fce57c4691a22fe55
commit-date: 2025-07-07
host: x86_64-unknown-linux-gnu
release: 1.90.0-nightly
LLVM version: 20.1.7

Error output

error[E0428]: the name `foo` is defined multiple times
 --> code.rs:8:5
  |
4 |     fn foo() -> impl Deref<Target = impl Deref<Target = impl Sized>> {
  |     ---------------------------------------------------------------- previous definition of the value `foo` here
...
8 |     fn foo(b: bool) -> impl Sized {
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `foo` redefined here
  |
  = note: `foo` must be defined only once in the value namespace of this trait
Backtrace

thread 'rustc' panicked at compiler/rustc_hir/src/definitions.rs:70:13:
found DefPathHash collision between DefPath {
    data: [
        DisambiguatedDefPathData {
            data: TypeNs(
                "Foo",
            ),
            disambiguator: 0,
        },
        DisambiguatedDefPathData {
            data: AnonAssocTy(
                "foo",
            ),
            disambiguator: 1,
        },
    ],
    krate: crate0,
} and DefPath {
    data: [
        DisambiguatedDefPathData {
            data: TypeNs(
                "Foo",
            ),
            disambiguator: 0,
        },
        DisambiguatedDefPathData {
            data: AnonAssocTy(
                "foo",
            ),
            disambiguator: 1,
        },
    ],
    krate: crate0,
}. Compilation cannot continue.
stack backtrace:
   0:     0x7dff18923443 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h7bfcb7613b9cdc60
   1:     0x7dff19002cbf - core::fmt::write::h849289ea9df84c39
   2:     0x7dff18918f73 - std::io::Write::write_fmt::h7048addce3d329ca
   3:     0x7dff189232a2 - std::sys::backtrace::BacktraceLock::print::heee9ea88df23f99f
   4:     0x7dff18926d3a - std::panicking::default_hook::{{closure}}::h5817ac89d8c3c860
   5:     0x7dff189268bf - std::panicking::default_hook::h478bb19f8b93e087
   6:     0x7dff179f49a3 - std[f1319f17f192eb47]::panicking::update_hook::<alloc[6887e28ded682fd6]::boxed::Box<rustc_driver_impl[cfd5894941938d66]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7dff1892758b - std::panicking::rust_panic_with_hook::h023a4592fa63e09d
   8:     0x7dff1892728a - std::panicking::begin_panic_handler::{{closure}}::h1826ac2988478758
   9:     0x7dff18923919 - std::sys::backtrace::__rust_end_short_backtrace::hd4c80ba903614d40
  10:     0x7dff18926f6d - __rustc[bcd53fdebb959812]::rust_begin_unwind
  11:     0x7dff150a8c60 - core::panicking::panic_fmt::hdd2fb6db07669575
  12:     0x7dff1a04addf - <rustc_middle[3dc6df19e0953673]::ty::context::TyCtxt>::create_def
  13:     0x7dff1a0470e8 - <rustc_middle[3dc6df19e0953673]::query::plumbing::TyCtxtAt>::create_def
  14:     0x7dff188a70f3 - rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_type_for_impl_trait_in_trait
  15:     0x7dff188a6e73 - <rustc_ty_utils[ecf4720a762f83bf]::assoc::RPITVisitor as rustc_hir[8aaf12680f74e1d5]::intravisit::Visitor>::visit_opaque_ty
  16:     0x7dff1980e208 - rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_types_for_impl_traits_in_associated_fn
  17:     0x7dff1980dbec - rustc_query_impl[c1fe29fd7e408458]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[c1fe29fd7e408458]::query_impl::associated_types_for_impl_traits_in_associated_fn::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 16usize]>>
  18:     0x7dff1980dbb9 - <rustc_query_impl[c1fe29fd7e408458]::query_impl::associated_types_for_impl_traits_in_associated_fn::dynamic_query::{closure#2} as core[24b5f5d7780a77b9]::ops::function::FnOnce<(rustc_middle[3dc6df19e0953673]::ty::context::TyCtxt, rustc_span[c6ecfb449c6d41e2]::def_id::DefId)>>::call_once
  19:     0x7dff19178c7b - rustc_query_system[b9fd241381b1ea3b]::query::plumbing::try_execute_query::<rustc_query_impl[c1fe29fd7e408458]::DynamicConfig<rustc_query_system[b9fd241381b1ea3b]::query::caches::DefIdCache<rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[c1fe29fd7e408458]::plumbing::QueryCtxt, false>
  20:     0x7dff191784a8 - rustc_query_impl[c1fe29fd7e408458]::query_impl::associated_types_for_impl_traits_in_associated_fn::get_query_non_incr::__rust_end_short_backtrace
  21:     0x7dff1a0e9386 - <core[24b5f5d7780a77b9]::iter::adapters::GenericShunt<core[24b5f5d7780a77b9]::iter::adapters::map::Map<core[24b5f5d7780a77b9]::iter::adapters::chain::Chain<core[24b5f5d7780a77b9]::iter::adapters::map::Map<core[24b5f5d7780a77b9]::slice::iter::Iter<rustc_hir[8aaf12680f74e1d5]::hir::TraitItemRef>, rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_item_def_ids::{closure#0}>, core[24b5f5d7780a77b9]::iter::adapters::copied::Copied<core[24b5f5d7780a77b9]::iter::adapters::flatten::FlatMap<core[24b5f5d7780a77b9]::iter::adapters::filter::Filter<core[24b5f5d7780a77b9]::slice::iter::Iter<rustc_hir[8aaf12680f74e1d5]::hir::TraitItemRef>, rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_item_def_ids::{closure#1}>, &[rustc_span[c6ecfb449c6d41e2]::def_id::DefId], rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_item_def_ids::{closure#2}>>>, core[24b5f5d7780a77b9]::result::Result<rustc_span[c6ecfb449c6d41e2]::def_id::DefId, !>::Ok>, core[24b5f5d7780a77b9]::result::Result<core[24b5f5d7780a77b9]::convert::Infallible, !>> as core[24b5f5d7780a77b9]::iter::traits::iterator::Iterator>::next
  22:     0x7dff1a0e905a - rustc_arena[81d7bce11047b8]::outline::<<rustc_arena[81d7bce11047b8]::DroplessArena>::alloc_from_iter<rustc_span[c6ecfb449c6d41e2]::def_id::DefId, core[24b5f5d7780a77b9]::iter::adapters::chain::Chain<core[24b5f5d7780a77b9]::iter::adapters::map::Map<core[24b5f5d7780a77b9]::slice::iter::Iter<rustc_hir[8aaf12680f74e1d5]::hir::TraitItemRef>, rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_item_def_ids::{closure#0}>, core[24b5f5d7780a77b9]::iter::adapters::copied::Copied<core[24b5f5d7780a77b9]::iter::adapters::flatten::FlatMap<core[24b5f5d7780a77b9]::iter::adapters::filter::Filter<core[24b5f5d7780a77b9]::slice::iter::Iter<rustc_hir[8aaf12680f74e1d5]::hir::TraitItemRef>, rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_item_def_ids::{closure#1}>, &[rustc_span[c6ecfb449c6d41e2]::def_id::DefId], rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_item_def_ids::{closure#2}>>>>::{closure#0}, &mut [rustc_span[c6ecfb449c6d41e2]::def_id::DefId]>
  23:     0x7dff19178337 - rustc_query_impl[c1fe29fd7e408458]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[c1fe29fd7e408458]::query_impl::associated_item_def_ids::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 16usize]>>
  24:     0x7dff191780d3 - <rustc_query_impl[c1fe29fd7e408458]::query_impl::associated_item_def_ids::dynamic_query::{closure#2} as core[24b5f5d7780a77b9]::ops::function::FnOnce<(rustc_middle[3dc6df19e0953673]::ty::context::TyCtxt, rustc_span[c6ecfb449c6d41e2]::def_id::DefId)>>::call_once
  25:     0x7dff19178c7b - rustc_query_system[b9fd241381b1ea3b]::query::plumbing::try_execute_query::<rustc_query_impl[c1fe29fd7e408458]::DynamicConfig<rustc_query_system[b9fd241381b1ea3b]::query::caches::DefIdCache<rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[c1fe29fd7e408458]::plumbing::QueryCtxt, false>
  26:     0x7dff1917871e - rustc_query_impl[c1fe29fd7e408458]::query_impl::associated_item_def_ids::get_query_non_incr::__rust_end_short_backtrace
  27:     0x7dff191abeb9 - rustc_ty_utils[ecf4720a762f83bf]::assoc::associated_items
  28:     0x7dff191abc0e - rustc_query_impl[c1fe29fd7e408458]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[c1fe29fd7e408458]::query_impl::associated_items::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 8usize]>>
  29:     0x7dff190377e5 - rustc_query_system[b9fd241381b1ea3b]::query::plumbing::try_execute_query::<rustc_query_impl[c1fe29fd7e408458]::DynamicConfig<rustc_query_system[b9fd241381b1ea3b]::query::caches::DefIdCache<rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[c1fe29fd7e408458]::plumbing::QueryCtxt, false>
  30:     0x7dff19036c1b - rustc_query_impl[c1fe29fd7e408458]::query_impl::associated_items::get_query_non_incr::__rust_end_short_backtrace
  31:     0x7dff197b66b1 - rustc_hir_analysis[9a31ed9c251d7d71]::check::check::check_item_type
  32:     0x7dff197abbb7 - rustc_hir_analysis[9a31ed9c251d7d71]::check::wfcheck::check_well_formed
  33:     0x7dff197abb99 - rustc_query_impl[c1fe29fd7e408458]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[c1fe29fd7e408458]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 1usize]>>
  34:     0x7dff197ab3cd - rustc_query_system[b9fd241381b1ea3b]::query::plumbing::try_execute_query::<rustc_query_impl[c1fe29fd7e408458]::DynamicConfig<rustc_data_structures[be5f72ec6ddb341]::vec_cache::VecCache<rustc_span[c6ecfb449c6d41e2]::def_id::LocalDefId, rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[b9fd241381b1ea3b]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[c1fe29fd7e408458]::plumbing::QueryCtxt, false>
  35:     0x7dff197aaf02 - rustc_query_impl[c1fe29fd7e408458]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  36:     0x7dff197a8664 - rustc_hir_analysis[9a31ed9c251d7d71]::check::wfcheck::check_type_wf
  37:     0x7dff197a8563 - rustc_query_impl[c1fe29fd7e408458]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[c1fe29fd7e408458]::query_impl::check_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 1usize]>>
  38:     0x7dff1a06b5bc - rustc_query_system[b9fd241381b1ea3b]::query::plumbing::try_execute_query::<rustc_query_impl[c1fe29fd7e408458]::DynamicConfig<rustc_query_system[b9fd241381b1ea3b]::query::caches::SingleCache<rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[c1fe29fd7e408458]::plumbing::QueryCtxt, false>
  39:     0x7dff1a06b3b6 - rustc_query_impl[c1fe29fd7e408458]::query_impl::check_type_wf::get_query_non_incr::__rust_end_short_backtrace
  40:     0x7dff19701c5e - rustc_hir_analysis[9a31ed9c251d7d71]::check_crate
  41:     0x7dff191ba1f1 - rustc_interface[14e750971f73f2dc]::passes::analysis
  42:     0x7dff191b9e0b - rustc_query_impl[c1fe29fd7e408458]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[c1fe29fd7e408458]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 0usize]>>
  43:     0x7dff1a06cd3c - rustc_query_system[b9fd241381b1ea3b]::query::plumbing::try_execute_query::<rustc_query_impl[c1fe29fd7e408458]::DynamicConfig<rustc_query_system[b9fd241381b1ea3b]::query::caches::SingleCache<rustc_middle[3dc6df19e0953673]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[c1fe29fd7e408458]::plumbing::QueryCtxt, false>
  44:     0x7dff1a06c906 - rustc_query_impl[c1fe29fd7e408458]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  45:     0x7dff1a2f8296 - rustc_interface[14e750971f73f2dc]::passes::create_and_enter_global_ctxt::<core[24b5f5d7780a77b9]::option::Option<rustc_interface[14e750971f73f2dc]::queries::Linker>, rustc_driver_impl[cfd5894941938d66]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
  46:     0x7dff1a227143 - rustc_interface[14e750971f73f2dc]::interface::run_compiler::<(), rustc_driver_impl[cfd5894941938d66]::run_compiler::{closure#0}>::{closure#1}
  47:     0x7dff1a1f6bf8 - std[f1319f17f192eb47]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[14e750971f73f2dc]::util::run_in_thread_with_globals<rustc_interface[14e750971f73f2dc]::util::run_in_thread_pool_with_globals<rustc_interface[14e750971f73f2dc]::interface::run_compiler<(), rustc_driver_impl[cfd5894941938d66]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  48:     0x7dff1a1f68d6 - <<std[f1319f17f192eb47]::thread::Builder>::spawn_unchecked_<rustc_interface[14e750971f73f2dc]::util::run_in_thread_with_globals<rustc_interface[14e750971f73f2dc]::util::run_in_thread_pool_with_globals<rustc_interface[14e750971f73f2dc]::interface::run_compiler<(), rustc_driver_impl[cfd5894941938d66]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[24b5f5d7780a77b9]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  49:     0x7dff1a1f4efd - std::sys::pal::unix::thread::Thread::new::thread_start::h757f4333dd30076e
  50:     0x7dff13ca57eb - <unknown>
  51:     0x7dff13d2918c - <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: please attach the file at `/home/matthias/vcs/github/CRED/rustc-ice-2025-07-07T05_17_55-3550375.txt` to your bug report

query stack during panic:
<HANG>

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️I-hangIssue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc.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