Closed
Description
Code
The compiler first crashes, thn hangs when trying to print the query stack
// Various examples of structs whose fields are not well-formed.
#![allow(dead_code)]
trait Trait<'a, T> {
type Out;
}
trait Trait1<'a, 'b, T> {
type Out;
}
impl PartialEq for Foo {
fn eq(&self, _: &Foo) -> bool {
false // ha ha!
}
}
struct RefOk<'a, T:'a> {
field: &'a T
}
impl<'a, T> Trait<'a, T> for u32 {
use super::*;
type Opq0<'a, 'b> = impl Sized;
type Opq1<'a> = impl for<'b> Trait<'b, Ty = Opq0<'a, 'b>>;
type Opq2 = impl for<'a> Trait<'a, Ty = Opq1<'a>>;
#[define_opaque(Opq2)]
fn test() -> Opq2 {}
//~^ ERROR: expected generic lifetime parameter, found `'a`
}
impl<'a, 'b, T> Trait1<'a, 'b, T> for u32 {
type Out = &'decl_macro &'b T; //~ ERROR reference has a longer lifetime than the data
}
fn main() { }
Meta
rustc --version --verbose
:
rustc 1.88.0-nightly (27d6200a7 2025-05-06)
binary: rustc
commit-hash: 27d6200a70601f6fcf419bf2f9e37989f3624ca4
commit-date: 2025-05-06
host: x86_64-unknown-linux-gnu
release: 1.88.0-nightly
LLVM version: 20.1.4
Error output
yes
Backtrace
thread 'rustc' panicked at compiler/rustc_hir/src/definitions.rs:70:13:
found DefPathHash collision between DefPath {
data: [
DisambiguatedDefPathData {
data: Impl,
disambiguator: 1,
},
DisambiguatedDefPathData {
data: TypeNs(
"Opq2",
),
disambiguator: 0,
},
DisambiguatedDefPathData {
data: OpaqueTy,
disambiguator: 0,
},
DisambiguatedDefPathData {
data: LifetimeNs(
"'a",
),
disambiguator: 0,
},
],
krate: crate0,
} and DefPath {
data: [
DisambiguatedDefPathData {
data: Impl,
disambiguator: 1,
},
DisambiguatedDefPathData {
data: TypeNs(
"Opq2",
),
disambiguator: 0,
},
DisambiguatedDefPathData {
data: OpaqueTy,
disambiguator: 0,
},
DisambiguatedDefPathData {
data: LifetimeNs(
"'a",
),
disambiguator: 0,
},
],
krate: crate0,
}. Compilation cannot continue.
stack backtrace:
0: 0x7d192392adb3 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h49add6602009883c
1: 0x7d1924005987 - core::fmt::write::h2b8bafb760aedb33
2: 0x7d192505ed51 - std::io::Write::write_fmt::ha8b80ee893d079cf
3: 0x7d192392ac12 - std::sys::backtrace::BacktraceLock::print::hadbbabeac5dd5672
4: 0x7d192392e80a - std::panicking::default_hook::{{closure}}::ha7627b2e1192d33c
5: 0x7d192392e38f - std::panicking::default_hook::h2f275c3e1f15d3b8
6: 0x7d192296c9f3 - std[ce8ccf77ffb023bf]::panicking::update_hook::<alloc[b6746bf1a130dcae]::boxed::Box<rustc_driver_impl[56fd1ef501a43154]::install_ice_hook::{closure#1}>>::{closure#0}
7: 0x7d192392f083 - std::panicking::rust_panic_with_hook::h7a5ac864f0ff33c8
8: 0x7d192392ed7a - std::panicking::begin_panic_handler::{{closure}}::h0dc8b96251fd771a
9: 0x7d192392b279 - std::sys::backtrace::__rust_end_short_backtrace::h57fb7450f73ac317
10: 0x7d192392ea3d - __rustc[f04850fc019d6c8f]::rust_begin_unwind
11: 0x7d192027f560 - core::panicking::panic_fmt::h87fef3678568c0b5
12: 0x7d1924f437e1 - <rustc_middle[3c56263abe6b39ea]::ty::context::TyCtxt>::create_def
13: 0x7d1921256777 - <rustc_hir_analysis[a1f9f0d5967b6f8b]::collect::resolve_bound_vars::BoundVarContext>::remap_opaque_captures
14: 0x7d1924cb2ab2 - <rustc_hir_analysis[a1f9f0d5967b6f8b]::collect::resolve_bound_vars::BoundVarContext as rustc_hir[73e75b1373ad420a]::intravisit::Visitor>::visit_opaque_ty
15: 0x7d1924ca5ecb - <rustc_hir_analysis[a1f9f0d5967b6f8b]::collect::resolve_bound_vars::BoundVarContext as rustc_hir[73e75b1373ad420a]::intravisit::Visitor>::visit_impl_item
16: 0x7d1924ca4b43 - rustc_hir_analysis[a1f9f0d5967b6f8b]::collect::resolve_bound_vars::resolve_bound_vars
17: 0x7d1924ca4884 - rustc_query_impl[831cfaf2ee55e692]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[831cfaf2ee55e692]::query_impl::resolve_bound_vars::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 8usize]>>
18: 0x7d1924749555 - rustc_query_system[fd4cfdcfbd5ee71f]::query::plumbing::try_execute_query::<rustc_query_impl[831cfaf2ee55e692]::DynamicConfig<rustc_data_structures[6dfce788614e05b9]::vec_cache::VecCache<rustc_hir[73e75b1373ad420a]::hir_id::OwnerId, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[fd4cfdcfbd5ee71f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[831cfaf2ee55e692]::plumbing::QueryCtxt, false>
19: 0x7d1924748fd2 - rustc_query_impl[831cfaf2ee55e692]::query_impl::resolve_bound_vars::get_query_non_incr::__rust_end_short_backtrace
20: 0x7d1925e10fcb - <rustc_hir_analysis[a1f9f0d5967b6f8b]::collect::resolve_bound_vars::provide::{closure#2} as core[380bbaee9f56bd6b]::ops::function::FnOnce<(rustc_middle[3c56263abe6b39ea]::ty::context::TyCtxt, rustc_span[39b72d7c522ce93c]::def_id::LocalDefId)>>::call_once.cold
21: 0x7d19252d6524 - rustc_query_impl[831cfaf2ee55e692]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[831cfaf2ee55e692]::query_impl::opaque_captured_lifetimes::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 16usize]>>
22: 0x7d19252d650d - <rustc_query_impl[831cfaf2ee55e692]::query_impl::opaque_captured_lifetimes::dynamic_query::{closure#2} as core[380bbaee9f56bd6b]::ops::function::FnOnce<(rustc_middle[3c56263abe6b39ea]::ty::context::TyCtxt, rustc_span[39b72d7c522ce93c]::def_id::LocalDefId)>>::call_once
23: 0x7d19244863cb - rustc_query_system[fd4cfdcfbd5ee71f]::query::plumbing::try_execute_query::<rustc_query_impl[831cfaf2ee55e692]::DynamicConfig<rustc_data_structures[6dfce788614e05b9]::vec_cache::VecCache<rustc_span[39b72d7c522ce93c]::def_id::LocalDefId, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[fd4cfdcfbd5ee71f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[831cfaf2ee55e692]::plumbing::QueryCtxt, false>
24: 0x7d19252e0f6a - rustc_query_impl[831cfaf2ee55e692]::query_impl::opaque_captured_lifetimes::get_query_non_incr::__rust_end_short_backtrace
25: 0x7d19248c6959 - <dyn rustc_hir_analysis[a1f9f0d5967b6f8b]::hir_ty_lowering::HirTyLowerer>::lower_ty
26: 0x7d1924455a5c - rustc_hir_analysis[a1f9f0d5967b6f8b]::collect::type_of::type_of
27: 0x7d1924450c36 - rustc_query_impl[831cfaf2ee55e692]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[831cfaf2ee55e692]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 8usize]>>
28: 0x7d192444f87f - rustc_query_system[fd4cfdcfbd5ee71f]::query::plumbing::try_execute_query::<rustc_query_impl[831cfaf2ee55e692]::DynamicConfig<rustc_query_system[fd4cfdcfbd5ee71f]::query::caches::DefIdCache<rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[831cfaf2ee55e692]::plumbing::QueryCtxt, false>
29: 0x7d192444f42b - rustc_query_impl[831cfaf2ee55e692]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
30: 0x7d19248e2da6 - rustc_hir_analysis[a1f9f0d5967b6f8b]::check::wfcheck::check_well_formed
31: 0x7d19248e0dcb - rustc_query_impl[831cfaf2ee55e692]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[831cfaf2ee55e692]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 1usize]>>
32: 0x7d19248e0671 - rustc_query_system[fd4cfdcfbd5ee71f]::query::plumbing::try_execute_query::<rustc_query_impl[831cfaf2ee55e692]::DynamicConfig<rustc_data_structures[6dfce788614e05b9]::vec_cache::VecCache<rustc_span[39b72d7c522ce93c]::def_id::LocalDefId, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[fd4cfdcfbd5ee71f]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[831cfaf2ee55e692]::plumbing::QueryCtxt, false>
33: 0x7d19248e014a - rustc_query_impl[831cfaf2ee55e692]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
34: 0x7d19248dd6e5 - rustc_hir_analysis[a1f9f0d5967b6f8b]::check::wfcheck::check_mod_type_wf
35: 0x7d19248dd4df - rustc_query_impl[831cfaf2ee55e692]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[831cfaf2ee55e692]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 1usize]>>
36: 0x7d1924fe8ac4 - rustc_query_system[fd4cfdcfbd5ee71f]::query::plumbing::try_execute_query::<rustc_query_impl[831cfaf2ee55e692]::DynamicConfig<rustc_query_system[fd4cfdcfbd5ee71f]::query::caches::DefaultCache<rustc_span[39b72d7c522ce93c]::def_id::LocalModDefId, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[831cfaf2ee55e692]::plumbing::QueryCtxt, false>
37: 0x7d1924fe8851 - rustc_query_impl[831cfaf2ee55e692]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
38: 0x7d19242dc544 - rustc_hir_analysis[a1f9f0d5967b6f8b]::check_crate
39: 0x7d19244753f7 - rustc_interface[8bf1101b7dd5e9b7]::passes::run_required_analyses
40: 0x7d1924fe99de - rustc_interface[8bf1101b7dd5e9b7]::passes::analysis
41: 0x7d1924fe99b5 - rustc_query_impl[831cfaf2ee55e692]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[831cfaf2ee55e692]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 0usize]>>
42: 0x7d1924f74f3a - rustc_query_system[fd4cfdcfbd5ee71f]::query::plumbing::try_execute_query::<rustc_query_impl[831cfaf2ee55e692]::DynamicConfig<rustc_query_system[fd4cfdcfbd5ee71f]::query::caches::SingleCache<rustc_middle[3c56263abe6b39ea]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[831cfaf2ee55e692]::plumbing::QueryCtxt, false>
43: 0x7d1924f74c0f - rustc_query_impl[831cfaf2ee55e692]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
44: 0x7d19251a5987 - rustc_interface[8bf1101b7dd5e9b7]::passes::create_and_enter_global_ctxt::<core[380bbaee9f56bd6b]::option::Option<rustc_interface[8bf1101b7dd5e9b7]::queries::Linker>, rustc_driver_impl[56fd1ef501a43154]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
45: 0x7d1925094766 - rustc_interface[8bf1101b7dd5e9b7]::interface::run_compiler::<(), rustc_driver_impl[56fd1ef501a43154]::run_compiler::{closure#0}>::{closure#1}
46: 0x7d19250588fe - std[ce8ccf77ffb023bf]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[8bf1101b7dd5e9b7]::util::run_in_thread_with_globals<rustc_interface[8bf1101b7dd5e9b7]::util::run_in_thread_pool_with_globals<rustc_interface[8bf1101b7dd5e9b7]::interface::run_compiler<(), rustc_driver_impl[56fd1ef501a43154]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
47: 0x7d1925058d74 - <<std[ce8ccf77ffb023bf]::thread::Builder>::spawn_unchecked_<rustc_interface[8bf1101b7dd5e9b7]::util::run_in_thread_with_globals<rustc_interface[8bf1101b7dd5e9b7]::util::run_in_thread_pool_with_globals<rustc_interface[8bf1101b7dd5e9b7]::interface::run_compiler<(), rustc_driver_impl[56fd1ef501a43154]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[380bbaee9f56bd6b]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
48: 0x7d192505a16b - std::sys::pal::unix::thread::Thread::new::thread_start::h4984952b7bb83f95
49: 0x7d191eea370a - <unknown>
50: 0x7d191ef27aac - <unknown>
51: 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 `/tmp/rustc-ice-2025-05-07T06_17_26-487536.txt` to your bug report
query stack during panic:
<HANG>