Skip to content

Conversation

@Jamesbarford
Copy link
Contributor

r? ghost

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Dec 22, 2025
@rust-log-analyzer

This comment has been minimized.

@Jamesbarford Jamesbarford force-pushed the chore/refactor-struct-placeholder-pt2 branch from 753b92c to 2077c6b Compare December 30, 2025 08:41
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

Comment on lines 19 to 20
mapped_regions: IndexMap<I::PlaceholderRegion, ty::BoundRegion>,
mapped_types: IndexMap<I::PlaceholderTy, ty::BoundTy>,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does PlaceholderRegion and PlaceholderTy still exist? 🤔


pub type PlaceholderConst<I: Interner> = ty::Placeholder<I, BoundConst>;

impl<I: Interner> PlaceholderLike<I> for PlaceholderConst<I> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no longer need the trait, can just use inherent methods now

@lcnr
Copy link
Contributor

lcnr commented Jan 5, 2026

The reason HashStable isn't implemented is kinda stupid.

HashStable_NoContext is a "perfect derive", i.e. we simply add where-clauses that each field implements the trait. This means the derive for BoundRegionKind adds I::DefId: HasHStable<CTX> and I::Symbol: HashStable<CTX>. These are then considered to not hold in the manual impl. Though tbf, I don't get why the manual impl exists at all.

Try to replace the manual impl with a derive and see if anything breaks. If it does break, add I::DefId: HashStable<CTX> and I::Symbol: HashStable<CTX> to the manual impl

@Jamesbarford Jamesbarford force-pushed the chore/refactor-struct-placeholder-pt2 branch from d262f5c to d36238d Compare January 13, 2026 11:42
@rust-log-analyzer

This comment has been minimized.

@Jamesbarford Jamesbarford force-pushed the chore/refactor-struct-placeholder-pt2 branch from d36238d to a03a907 Compare January 13, 2026 13:29
@rust-log-analyzer

This comment has been minimized.

@Jamesbarford Jamesbarford force-pushed the chore/refactor-struct-placeholder-pt2 branch from a03a907 to b4de573 Compare January 15, 2026 14:43
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@Jamesbarford Jamesbarford force-pushed the chore/refactor-struct-placeholder-pt2 branch from 044bbd5 to cdff0b9 Compare January 19, 2026 12:01
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@Jamesbarford Jamesbarford force-pushed the chore/refactor-struct-placeholder-pt2 branch from e30f48d to 9dec2e9 Compare January 21, 2026 14:43
@rust-log-analyzer

This comment has been minimized.

@rustbot rustbot added the T-clippy Relevant to the Clippy team. label Jan 21, 2026
@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [ui] tests/ui/imports/ambiguous-5.rs ... ok
test [ui] tests/ui/imports/ambiguous-4.rs ... ok
test [ui] tests/ui/imports/ambiguous-7.rs ... ok
test [ui] tests/ui/imports/ambiguous-9.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-glob-vs-multiouter.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-globvsglob.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-no-implicit-prelude.rs ... ok
test [ui] tests/ui/imports/ambiguous-8.rs ... ok
test [ui] tests/ui/imports/ambiguous-glob-vs-expanded-extern.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-non-prelude-core-glob.rs ... ok
test [ui] tests/ui/imports/ambiguous-panic-non-prelude-std-glob.rs ... ok
---

---- [incremental] tests/incremental/change_add_field/struct_point.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with resolve_bound_vars(struct_point[9553]::fn_with_type_in_sig::boop)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with resolve_bound_vars(struct_point[9553]::fn_with_type_in_sig::boop)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (224349) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for resolve_bound_vars(struct_point[9553]::fn_with_type_in_sig::boop): ResolveBoundVars { defs: {22: LateBound(DebruijnIndex(0), 0, DefId(0:36 ~ struct_point[9553]::fn_with_type_in_sig::boop::'_))}, late_bound_vars: {0: [Region(BrNamed(DefId(0:36 ~ struct_point[9553]::fn_with_type_in_sig::boop::'_)))], 10: []}, opaque_captured_lifetimes: UnordMap { inner: {} } }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 8]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_hir_analysis::collect::resolve_bound_vars::provide::{closure#1} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_hir_id::OwnerId)>>::call_once
      [... omitted 5 frames ...]
   7: <rustc_middle::ty::context::TyCtxt>::late_bound_vars
   8: <dyn rustc_hir_analysis::hir_ty_lowering::HirTyLowerer>::lower_fn_ty
   9: rustc_hir_analysis::collect::fn_sig
      [... omitted 12 frames ...]
  10: rustc_hir_analysis::check_crate
  11: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  12: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  13: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  14: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  15: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  16: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  17: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  18: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph

query stack during panic:
#0 [resolve_bound_vars] resolving lifetimes for `fn_with_type_in_sig::boop`
#1 [late_bound_vars_map] looking up late bound vars inside `fn_with_type_in_sig::boop`
#2 [fn_sig] computing function signature of `fn_with_type_in_sig::boop`
#3 [analysis] running analysis passes on crate `struct_point`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 check_well_formed(struct_point[9553]::fn_with_type_in_sig::boop)
#1 check_type_wf(0-0)
end of try_mark_green dep node stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}

------------------------------------------

error in revision `cfail2`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/change_add_field/struct_point.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "cfail2" "--check-cfg" "cfg(test,FALSE,cfail1,cfail2)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/change_add_field/struct_point/struct_point.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/change_add_field/struct_point" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Z" "query-dep-graph"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with resolve_bound_vars(struct_point[9553]::fn_with_type_in_sig::boop)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (224349) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for resolve_bound_vars(struct_point[9553]::fn_with_type_in_sig::boop): ResolveBoundVars { defs: {22: LateBound(DebruijnIndex(0), 0, DefId(0:36 ~ struct_point[9553]::fn_with_type_in_sig::boop::'_))}, late_bound_vars: {0: [Region(BrNamed(DefId(0:36 ~ struct_point[9553]::fn_with_type_in_sig::boop::'_)))], 10: []}, opaque_captured_lifetimes: UnordMap { inner: {} } }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 8]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_hir_analysis::collect::resolve_bound_vars::provide::{closure#1} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_hir_id::OwnerId)>>::call_once
      [... omitted 5 frames ...]
   7: <rustc_middle::ty::context::TyCtxt>::late_bound_vars
   8: <dyn rustc_hir_analysis::hir_ty_lowering::HirTyLowerer>::lower_fn_ty
   9: rustc_hir_analysis::collect::fn_sig
      [... omitted 12 frames ...]
  10: rustc_hir_analysis::check_crate
  11: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  12: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  13: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  14: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  15: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  16: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  17: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  18: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph

query stack during panic:
#0 [resolve_bound_vars] resolving lifetimes for `fn_with_type_in_sig::boop`
#1 [late_bound_vars_map] looking up late bound vars inside `fn_with_type_in_sig::boop`
#2 [fn_sig] computing function signature of `fn_with_type_in_sig::boop`
#3 [analysis] running analysis passes on crate `struct_point`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 check_well_formed(struct_point[9553]::fn_with_type_in_sig::boop)
#1 check_type_wf(0-0)
end of try_mark_green dep node stack
error: aborting due to 1 previous error
------------------------------------------

---- [incremental] tests/incremental/change_add_field/struct_point.rs stdout end ----
---- [incremental] tests/incremental/change_pub_inherent_method_sig/struct_point.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(struct_point[9553]::point::{impl#0}::x)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(struct_point[9553]::point::{impl#0}::x)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (224759) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(struct_point[9553]::point::{impl#0}::x): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:28 ~ struct_point[9553]::point::{impl#0}::x::'_)) point::Point) -> f32, bound_vars: [Region(BrNamed(DefId(0:28 ~ struct_point[9553]::point::{impl#0}::x::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::ReachEverythingInTheInterfaceVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::ReachEverythingInTheInterfaceVisitor>::ty
   8: <rustc_privacy::EmbargoVisitor>::check_def_id
   9: rustc_privacy::effective_visibilities
      [... omitted 5 frames ...]
  10: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  11: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  12: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  14: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  15: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  16: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  17: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  18: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph

query stack during panic:
#0 [fn_sig] computing function signature of `point::<impl at /checkout/tests/incremental/change_pub_inherent_method_sig/struct_point.rs:28:5: 28:15>::x`
#1 [effective_visibilities] checking effective visibilities
#2 [analysis] running analysis passes on crate `struct_point`
end of query stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}

------------------------------------------

error in revision `cfail2`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/change_pub_inherent_method_sig/struct_point.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "cfail2" "--check-cfg" "cfg(test,FALSE,cfail1,cfail2)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/change_pub_inherent_method_sig/struct_point/struct_point.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/change_pub_inherent_method_sig/struct_point" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Z" "query-dep-graph"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with fn_sig(struct_point[9553]::point::{impl#0}::x)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (224759) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(struct_point[9553]::point::{impl#0}::x): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:28 ~ struct_point[9553]::point::{impl#0}::x::'_)) point::Point) -> f32, bound_vars: [Region(BrNamed(DefId(0:28 ~ struct_point[9553]::point::{impl#0}::x::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::ReachEverythingInTheInterfaceVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::ReachEverythingInTheInterfaceVisitor>::ty
   8: <rustc_privacy::EmbargoVisitor>::check_def_id
   9: rustc_privacy::effective_visibilities
      [... omitted 5 frames ...]
  10: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  11: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  12: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  14: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  15: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  16: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  17: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  18: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph

query stack during panic:
#0 [fn_sig] computing function signature of `point::<impl at /checkout/tests/incremental/change_pub_inherent_method_sig/struct_point.rs:28:5: 28:15>::x`
#1 [effective_visibilities] checking effective visibilities
#2 [analysis] running analysis passes on crate `struct_point`
end of query stack
error: aborting due to 1 previous error
------------------------------------------

---- [incremental] tests/incremental/change_pub_inherent_method_sig/struct_point.rs stdout end ----
---- [incremental] tests/incremental/hashes/inherent_impls.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with resolve_bound_vars(inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with resolve_bound_vars(inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (226529) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for resolve_bound_vars(inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl): ResolveBoundVars { defs: {6: LateBound(DebruijnIndex(0), 0, DefId(0:89 ~ inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl::'_))}, late_bound_vars: {0: [Region(BrNamed(DefId(0:89 ~ inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl::'_)))]}, opaque_captured_lifetimes: UnordMap { inner: {} } }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 8]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_hir_analysis::collect::resolve_bound_vars::provide::{closure#1} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_hir_id::OwnerId)>>::call_once
      [... omitted 5 frames ...]
   7: <rustc_middle::ty::context::TyCtxt>::late_bound_vars
   8: <dyn rustc_hir_analysis::hir_ty_lowering::HirTyLowerer>::lower_fn_ty
   9: rustc_hir_analysis::collect::fn_sig
      [... omitted 5 frames ...]
  10: <rustc_hir_analysis::variance::constraints::ConstraintContext>::build_constraints_for_item
  11: rustc_hir_analysis::variance::crate_variances
      [... omitted 12 frames ...]
  12: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
  13: std::panicking::catch_unwind::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::try_par_for_each_in<&[rustc_hir::hir::ImplItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_impl_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#1}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  14: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
  15: rustc_hir_analysis::check::wfcheck::check_type_wf
      [... omitted 5 frames ...]
  16: rustc_hir_analysis::check_crate
  17: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  18: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  19: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  20: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  21: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  22: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  23: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  24: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph -Z incremental-ignore-spans

query stack during panic:
#0 [resolve_bound_vars] resolving lifetimes for `<impl at /checkout/tests/incremental/hashes/inherent_impls.rs:686:1: 686:15>::add_type_parameter_to_impl`
#1 [late_bound_vars_map] looking up late bound vars inside `<impl at /checkout/tests/incremental/hashes/inherent_impls.rs:686:1: 686:15>::add_type_parameter_to_impl`
#2 [fn_sig] computing function signature of `<impl at /checkout/tests/incremental/hashes/inherent_impls.rs:686:1: 686:15>::add_type_parameter_to_impl`
#3 [crate_variances] computing the variances for items in this crate
#4 [check_type_wf] checking that types are well-formed
#5 [analysis] running analysis passes on crate `inherent_impls`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 variances_of(inherent_impls[d4e7]::Bar)
#1 check_well_formed(inherent_impls[d4e7]::Bar)
end of try_mark_green dep node stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}

------------------------------------------

error in revision `cfail2`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/hashes/inherent_impls.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "cfail2" "--check-cfg" "cfg(test,FALSE,cfail1,cfail2,cfail3,cfail4,cfail5,cfail6)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/hashes/inherent_impls/inherent_impls.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/hashes/inherent_impls" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2024" "-Z" "query-dep-graph" "-O" "-Zincremental-ignore-spans"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with resolve_bound_vars(inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (226529) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for resolve_bound_vars(inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl): ResolveBoundVars { defs: {6: LateBound(DebruijnIndex(0), 0, DefId(0:89 ~ inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl::'_))}, late_bound_vars: {0: [Region(BrNamed(DefId(0:89 ~ inherent_impls[d4e7]::{impl#21}::add_type_parameter_to_impl::'_)))]}, opaque_captured_lifetimes: UnordMap { inner: {} } }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 8]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_data_structures::vec_cache::VecCache<rustc_hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_hir_analysis::collect::resolve_bound_vars::provide::{closure#1} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_hir_id::OwnerId)>>::call_once
      [... omitted 5 frames ...]
   7: <rustc_middle::ty::context::TyCtxt>::late_bound_vars
   8: <dyn rustc_hir_analysis::hir_ty_lowering::HirTyLowerer>::lower_fn_ty
   9: rustc_hir_analysis::collect::fn_sig
      [... omitted 5 frames ...]
  10: <rustc_hir_analysis::variance::constraints::ConstraintContext>::build_constraints_for_item
  11: rustc_hir_analysis::variance::crate_variances
      [... omitted 12 frames ...]
  12: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
  13: std::panicking::catch_unwind::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::try_par_for_each_in<&[rustc_hir::hir::ImplItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_impl_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#1}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  14: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
  15: rustc_hir_analysis::check::wfcheck::check_type_wf
      [... omitted 5 frames ...]
  16: rustc_hir_analysis::check_crate
  17: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  18: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  19: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  20: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  21: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  22: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  23: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  24: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph -Z incremental-ignore-spans

query stack during panic:
#0 [resolve_bound_vars] resolving lifetimes for `<impl at /checkout/tests/incremental/hashes/inherent_impls.rs:686:1: 686:15>::add_type_parameter_to_impl`
#1 [late_bound_vars_map] looking up late bound vars inside `<impl at /checkout/tests/incremental/hashes/inherent_impls.rs:686:1: 686:15>::add_type_parameter_to_impl`
#2 [fn_sig] computing function signature of `<impl at /checkout/tests/incremental/hashes/inherent_impls.rs:686:1: 686:15>::add_type_parameter_to_impl`
#3 [crate_variances] computing the variances for items in this crate
#4 [check_type_wf] checking that types are well-formed
#5 [analysis] running analysis passes on crate `inherent_impls`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 variances_of(inherent_impls[d4e7]::Bar)
#1 check_well_formed(inherent_impls[d4e7]::Bar)
end of try_mark_green dep node stack
error: aborting due to 1 previous error
------------------------------------------

---- [incremental] tests/incremental/hashes/inherent_impls.rs stdout end ----
---- [incremental] tests/incremental/hashes/trait_impls.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (227004) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:99 ~ trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method::'_)) Self/#0), bound_vars: [Region(BrNamed(DefId(0:99 ~ trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_hir_analysis::variance::constraints::ConstraintContext>::build_constraints_for_item
   7: rustc_hir_analysis::variance::crate_variances
      [... omitted 12 frames ...]
   8: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
   9: std::panicking::catch_unwind::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::try_par_for_each_in<&[rustc_hir::hir::ImplItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_impl_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#1}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  10: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
  11: rustc_hir_analysis::check::wfcheck::check_type_wf
      [... omitted 5 frames ...]
  12: rustc_hir_analysis::check_crate
  13: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  14: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  15: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  16: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  17: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  18: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  19: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  20: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph -Z incremental-ignore-spans

query stack during panic:
#0 [fn_sig] computing function signature of `AddNoMangleToMethod::add_no_mangle_to_method`
#1 [crate_variances] computing the variances for items in this crate
#2 [check_type_wf] checking that types are well-formed
#3 [analysis] running analysis passes on crate `trait_impls`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 variances_of(trait_impls[7c29]::Bar)
#1 check_well_formed(trait_impls[7c29]::Bar)
end of try_mark_green dep node stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}

------------------------------------------

error in revision `cfail2`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/hashes/trait_impls.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "cfail2" "--check-cfg" "cfg(test,FALSE,cfail1,cfail2,cfail3,cfail4,cfail5,cfail6)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/hashes/trait_impls/trait_impls.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/hashes/trait_impls" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Z" "query-dep-graph" "-O" "-Zincremental-ignore-spans"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with fn_sig(trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (227004) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:99 ~ trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method::'_)) Self/#0), bound_vars: [Region(BrNamed(DefId(0:99 ~ trait_impls[7c29]::AddNoMangleToMethod::add_no_mangle_to_method::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_hir_analysis::variance::constraints::ConstraintContext>::build_constraints_for_item
   7: rustc_hir_analysis::variance::crate_variances
      [... omitted 12 frames ...]
   8: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
   9: std::panicking::catch_unwind::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::try_par_for_each_in<&[rustc_hir::hir::ImplItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_impl_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#1}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  10: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
  11: rustc_hir_analysis::check::wfcheck::check_type_wf
      [... omitted 5 frames ...]
  12: rustc_hir_analysis::check_crate
  13: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  14: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  15: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  16: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  17: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  18: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  19: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  20: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph -Z incremental-ignore-spans

query stack during panic:
#0 [fn_sig] computing function signature of `AddNoMangleToMethod::add_no_mangle_to_method`
#1 [crate_variances] computing the variances for items in this crate
#2 [check_type_wf] checking that types are well-formed
#3 [analysis] running analysis passes on crate `trait_impls`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 variances_of(trait_impls[7c29]::Bar)
#1 check_well_formed(trait_impls[7c29]::Bar)
end of try_mark_green dep node stack
error: aborting due to 1 previous error
------------------------------------------

---- [incremental] tests/incremental/hashes/trait_impls.rs stdout end ----
---- [incremental] tests/incremental/issue-110457-same-span-closures/main.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(main[d17f]::{impl#0}::inspect_mut)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(main[d17f]::{impl#0}::inspect_mut)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (227946) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(main[d17f]::{impl#0}::inspect_mut): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:24 ~ main[d17f]::{impl#0}::inspect_mut::'_)) mut GameState), bound_vars: [Region(BrNamed(DefId(0:24 ~ main[d17f]::{impl#0}::inspect_mut::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `<impl at /checkout/tests/incremental/issue-110457-same-span-closures/main.rs:17:1: 17:15>::inspect_mut`
#1 [check_unsafety] unsafety-checking `main`
#2 [analysis] running analysis passes on crate `main`
end of query stack
{"$message_type":"diagnostic","message":"unused variable: `f`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/tests/incremental/issue-110457-same-span-closures/main.rs","byte_start":611,"byte_end":612,"line_start":37,"line_end":37,"column_start":19,"column_end":20,"is_primary":true,"text":[{"text":"    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {","highlight_start":19,"highlight_end":20}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"/checkout/tests/incremental/issue-110457-same-span-closures/main.rs","byte_start":611,"byte_end":612,"line_start":37,"line_end":37,"column_start":19,"column_end":20,"is_primary":true,"text":[{"text":"    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {","highlight_start":19,"highlight_end":20}],"label":null,"suggested_replacement":"_f","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"warning: unused variable: `f`\n  --> /checkout/tests/incremental/issue-110457-same-span-closures/main.rs:37:19\n   |\nLL |     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {\n   |                   ^ help: if this is intentional, prefix it with an underscore: `_f`\n   |\n   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default\n\n"}
{"$message_type":"diagnostic","message":"unused variable: `writer`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/tests/incremental/issue-110457-same-span-closures/main.rs","byte_start":772,"byte_end":778,"line_start":46,"line_end":46,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":"pub fn output_mut<R>(writer: impl FnOnce(&mut PlatformOutput) -> R) -> R {","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"/checkout/tests/incremental/issue-110457-same-span-closures/main.rs","byte_start":772,"byte_end":778,"line_start":46,"line_end":46,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":"pub fn output_mut<R>(writer: impl FnOnce(&mut PlatformOutput) -> R) -> R {","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":"_writer","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"warning: unused variable: `writer`\n  --> /checkout/tests/incremental/issue-110457-same-span-closures/main.rs:46:22\n   |\nLL | pub fn output_mut<R>(writer: impl FnOnce(&mut PlatformOutput) -> R) -> R {\n   |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_writer`\n\n"}
{"$message_type":"diagnostic","message":"aborting due to 1 previous error; 2 warnings emitted","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error; 2 warnings emitted\n\n"}

------------------------------------------

error in revision `cpass2`: compilation failed!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/issue-110457-same-span-closures/main.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "cpass2" "--check-cfg" "cfg(test,FALSE,cpass1,cpass2)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-110457-same-span-closures/main/main.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-110457-same-span-closures/main" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-110457-same-span-closures/main/auxiliary" "--extern" "egui_inspect_derive=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-110457-same-span-closures/main/auxiliary/libegui_inspect_derive.so"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with fn_sig(main[d17f]::{impl#0}::inspect_mut)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (227946) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(main[d17f]::{impl#0}::inspect_mut): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:24 ~ main[d17f]::{impl#0}::inspect_mut::'_)) mut GameState), bound_vars: [Region(BrNamed(DefId(0:24 ~ main[d17f]::{impl#0}::inspect_mut::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_middle::ty::context::TyCtxt as rustc_type_ir::interner::Interner>::fn_sig
   7: <rustc_type_ir::ty_kind::TyKind<rustc_middle::ty::context::TyCtxt>>::fn_sig
   8: <rustc_middle::ty::Ty>::fn_sig
   9: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_expr
  10: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_expr
  11: rustc_middle::thir::visit::walk_block::<rustc_mir_build::check_unsafety::UnsafetyVisitor>
  12: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_expr
  13: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_expr
  14: rustc_mir_build::check_unsafety::check_unsafety
      [... omitted 5 frames ...]
  15: <rustc_middle::ty::context::TyCtxt>::par_hir_body_owners::<rustc_interface::passes::run_required_analyses::{closure#1}::{closure#0}>::{closure#0}
  16: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], <rustc_middle::ty::context::TyCtxt>::par_hir_body_owners<rustc_interface::passes::run_required_analyses::{closure#1}::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  17: <rustc_session::session::Session>::time::<(), rustc_interface::passes::run_required_analyses::{closure#1}>
  18: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  19: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  20: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  21: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  22: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  23: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  24: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  25: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `<impl at /checkout/tests/incremental/issue-110457-same-span-closures/main.rs:17:1: 17:15>::inspect_mut`
#1 [check_unsafety] unsafety-checking `main`
#2 [analysis] running analysis passes on crate `main`
end of query stack
warning: unused variable: `f`
##[warning]  --> /checkout/tests/incremental/issue-110457-same-span-closures/main.rs:37:19
   |
LL |     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
   |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
   |
   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `writer`
##[warning]  --> /checkout/tests/incremental/issue-110457-same-span-closures/main.rs:46:22
   |
LL | pub fn output_mut<R>(writer: impl FnOnce(&mut PlatformOutput) -> R) -> R {
   |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_writer`

error: aborting due to 1 previous error; 2 warnings emitted
------------------------------------------

---- [incremental] tests/incremental/issue-110457-same-span-closures/main.rs stdout end ----
---- [incremental] tests/incremental/issue-82920-predicate-order-miscompile.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(issue_82920_predicate_order_miscompile[5f6b]::Two::method_two)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(issue_82920_predicate_order_miscompile[5f6b]::Two::method_two)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (228459) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(issue_82920_predicate_order_miscompile[5f6b]::Two::method_two): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:19 ~ issue_82920_predicate_order_miscompile[5f6b]::Two::method_two::'_)) Self/#0) -> usize, bound_vars: [Region(BrNamed(DefId(0:19 ~ issue_82920_predicate_order_miscompile[5f6b]::Two::method_two::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::SearchInterfaceForPrivateItemsVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::SearchInterfaceForPrivateItemsVisitor>::ty
   8: <rustc_privacy::PrivateItemsInPublicInterfacesChecker>::check_assoc_item
   9: <rustc_privacy::PrivateItemsInPublicInterfacesChecker>::check_item
  10: std::panicking::catch_unwind::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::try_par_for_each_in<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_privacy::check_private_in_public::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  11: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_privacy::check_private_in_public::{closure#0}>::{closure#0}>
  12: rustc_privacy::check_private_in_public
      [... omitted 5 frames ...]
  13: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<&rustc_hir_id::OwnerId, &[rustc_hir_id::OwnerId], <rustc_middle::ty::context::TyCtxt>::par_hir_for_each_module<rustc_interface::passes::analysis::{closure#0}::{closure#2}::{closure#0}::{closure#2}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  14: rustc_data_structures::sync::parallel::par_for_each_in::<&rustc_hir_id::OwnerId, &[rustc_hir_id::OwnerId], <rustc_middle::ty::context::TyCtxt>::par_hir_for_each_module<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}>
  15: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}::{closure#0}::{closure#0}>>
  16: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}::{closure#0}::{closure#0}>
  17: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  18: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  19: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  20: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  21: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  22: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  23: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  24: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  25: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  26: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `Two::method_two`
#1 [check_private_in_public] checking for private elements in public interfaces for top-level module
#2 [analysis] running analysis passes on crate `issue_82920_predicate_order_miscompile`
end of query stack
{"$message_type":"diagnostic","message":"internal compiler error: reentrant incremental verify failure, suppressing message","code":null,"level":"error","spans":[],"children":[],"rendered":"error: internal compiler error: reentrant incremental verify failure, suppressing message\n\n"}
{"$message_type":"diagnostic","message":"aborting due to 2 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 2 previous errors\n\n"}

------------------------------------------

error in revision `rpass2`: compilation failed!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/issue-82920-predicate-order-miscompile.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "rpass2" "--check-cfg" "cfg(test,FALSE,rpass1,rpass2)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-82920-predicate-order-miscompile/issue-82920-predicate-order-miscompile.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-82920-predicate-order-miscompile/a" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with fn_sig(issue_82920_predicate_order_miscompile[5f6b]::Two::method_two)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (228459) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(issue_82920_predicate_order_miscompile[5f6b]::Two::method_two): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:19 ~ issue_82920_predicate_order_miscompile[5f6b]::Two::method_two::'_)) Self/#0) -> usize, bound_vars: [Region(BrNamed(DefId(0:19 ~ issue_82920_predicate_order_miscompile[5f6b]::Two::method_two::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::SearchInterfaceForPrivateItemsVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::SearchInterfaceForPrivateItemsVisitor>::ty
   8: <rustc_privacy::PrivateItemsInPublicInterfacesChecker>::check_assoc_item
   9: <rustc_privacy::PrivateItemsInPublicInterfacesChecker>::check_item
  10: std::panicking::catch_unwind::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::try_par_for_each_in<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_privacy::check_private_in_public::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  11: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_privacy::check_private_in_public::{closure#0}>::{closure#0}>
  12: rustc_privacy::check_private_in_public
      [... omitted 5 frames ...]
  13: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<&rustc_hir_id::OwnerId, &[rustc_hir_id::OwnerId], <rustc_middle::ty::context::TyCtxt>::par_hir_for_each_module<rustc_interface::passes::analysis::{closure#0}::{closure#2}::{closure#0}::{closure#2}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  14: rustc_data_structures::sync::parallel::par_for_each_in::<&rustc_hir_id::OwnerId, &[rustc_hir_id::OwnerId], <rustc_middle::ty::context::TyCtxt>::par_hir_for_each_module<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}::{closure#0}::{closure#0}::{closure#0}>::{closure#0}>
  15: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}::{closure#0}::{closure#0}>>
  16: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}::{closure#0}::{closure#0}>
  17: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  18: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  19: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  20: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  21: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  22: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  23: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  24: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  25: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  26: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `Two::method_two`
#1 [check_private_in_public] checking for private elements in public interfaces for top-level module
#2 [analysis] running analysis passes on crate `issue_82920_predicate_order_miscompile`
end of query stack
error: internal compiler error: reentrant incremental verify failure, suppressing message

error: aborting due to 2 previous errors
------------------------------------------

---- [incremental] tests/incremental/issue-82920-predicate-order-miscompile.rs stdout end ----
---- [incremental] tests/incremental/issue-79890-imported-crates-changed.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"unused import: `issue_79890::MyTrait`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"/checkout/tests/incremental/issue-79890-imported-crates-changed.rs","byte_start":239,"byte_end":259,"line_start":8,"line_end":8,"column_start":20,"column_end":40,"is_primary":true,"text":[{"text":"#[cfg(rpass2)] use issue_79890::MyTrait;","highlight_start":20,"highlight_end":40}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"/checkout/tests/incremental/issue-79890-imported-crates-changed.rs","byte_start":220,"byte_end":261,"line_start":8,"line_end":8,"column_start":1,"column_end":42,"is_primary":true,"text":[{"text":"#[cfg(rpass2)] use issue_79890::MyTrait;","highlight_start":1,"highlight_end":42}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"warning: unused import: `issue_79890::MyTrait`\n  --> /checkout/tests/incremental/issue-79890-imported-crates-changed.rs:8:20\n   |\nLL | #[cfg(rpass2)] use issue_79890::MyTrait;\n   |                    ^^^^^^^^^^^^^^^^^^^^\n   |\n   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\n"}
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(test[ca39]::test_main_static)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(test[ca39]::test_main_static)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (228502) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(test[ca39]::test_main_static): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(21:1768 ~ test[ca39]::test_main_static::'_)) [&'^1.Named(DefId(21:1769 ~ test[ca39]::test_main_static::'_#1)) test::TestDescAndFn]), bound_vars: [Region(BrNamed(DefId(21:1768 ~ test[ca39]::test_main_static::'_))), Region(BrNamed(DefId(21:1769 ~ test[ca39]::test_main_static::'_#1)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::TypePrivacyVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::TypePrivacyVisitor>::check_expr_pat_type
   8: <rustc_privacy::TypePrivacyVisitor as rustc_hir::intravisit::Visitor>::visit_expr
   9: rustc_hir::intravisit::walk_expr::<rustc_privacy::TypePrivacyVisitor>
  10: <rustc_privacy::TypePrivacyVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  11: <rustc_privacy::TypePrivacyVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  12: rustc_privacy::check_mod_privacy
      [... omitted 5 frames ...]
  13: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<&rustc_hir_id::OwnerId, &[rustc_hir_id::OwnerId], <rustc_middle::ty::context::TyCtxt>::par_hir_for_each_module<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#1}::{closure#0}::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  14: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#1}::{closure#0}>
  15: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#1}>>
  16: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  17: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  18: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  19: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  20: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  21: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  22: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  23: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  24: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `test::test_main_static`
#1 [check_mod_privacy] checking privacy in top-level module
#2 [analysis] running analysis passes on crate `issue_79890_imported_crates_changed`
end of query stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error; 1 warning emitted","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error; 1 warning emitted\n\n"}

------------------------------------------

error in revision `rpass2`: compilation failed!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/issue-79890-imported-crates-changed.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "rpass2" "--check-cfg" "cfg(test,FALSE,rpass1,rpass2,rpass3)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-79890-imported-crates-changed/issue-79890-imported-crates-changed.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-79890-imported-crates-changed/a" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/issue-79890-imported-crates-changed/auxiliary" "--edition=2018" "--extern" "issue_79890" "--test"
stdout: none
--- stderr -------------------------------
warning: unused import: `issue_79890::MyTrait`
##[warning]  --> /checkout/tests/incremental/issue-79890-imported-crates-changed.rs:8:20
   |
LL | #[cfg(rpass2)] use issue_79890::MyTrait;
   |                    ^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

error: internal compiler error: encountered incremental compilation error with fn_sig(test[ca39]::test_main_static)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (228502) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(test[ca39]::test_main_static): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(21:1768 ~ test[ca39]::test_main_static::'_)) [&'^1.Named(DefId(21:1769 ~ test[ca39]::test_main_static::'_#1)) test::TestDescAndFn]), bound_vars: [Region(BrNamed(DefId(21:1768 ~ test[ca39]::test_main_static::'_))), Region(BrNamed(DefId(21:1769 ~ test[ca39]::test_main_static::'_#1)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::TypePrivacyVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::TypePrivacyVisitor>::check_expr_pat_type
   8: <rustc_privacy::TypePrivacyVisitor as rustc_hir::intravisit::Visitor>::visit_expr
   9: rustc_hir::intravisit::walk_expr::<rustc_privacy::TypePrivacyVisitor>
  10: <rustc_privacy::TypePrivacyVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  11: <rustc_privacy::TypePrivacyVisitor as rustc_hir::intravisit::Visitor>::visit_expr
  12: rustc_privacy::check_mod_privacy
      [... omitted 5 frames ...]
  13: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in<&rustc_hir_id::OwnerId, &[rustc_hir_id::OwnerId], <rustc_middle::ty::context::TyCtxt>::par_hir_for_each_module<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#1}::{closure#0}::{closure#0}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  14: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#1}::{closure#0}>
  15: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#1}>>
  16: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  17: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  18: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  19: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  20: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  21: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  22: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  23: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  24: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `test::test_main_static`
#1 [check_mod_privacy] checking privacy in top-level module
#2 [analysis] running analysis passes on crate `issue_79890_imported_crates_changed`
end of query stack
error: aborting due to 1 previous error; 1 warning emitted
------------------------------------------

---- [incremental] tests/incremental/issue-79890-imported-crates-changed.rs stdout end ----
---- [incremental] tests/incremental/krate-inherent.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(krate_inherent[a99a]::x::{impl#0}::foo)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(krate_inherent[a99a]::x::{impl#0}::foo)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (228796) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(krate_inherent[a99a]::x::{impl#0}::foo): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:9 ~ krate_inherent[a99a]::x::{impl#0}::foo::'_)) x::Foo), bound_vars: [Region(BrNamed(DefId(0:9 ~ krate_inherent[a99a]::x::{impl#0}::foo::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::ReachEverythingInTheInterfaceVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::ReachEverythingInTheInterfaceVisitor>::ty
   8: <rustc_privacy::EmbargoVisitor>::check_def_id
   9: rustc_privacy::effective_visibilities
      [... omitted 5 frames ...]
  10: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  11: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  12: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  14: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  15: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  16: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  17: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  18: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph

query stack during panic:
#0 [fn_sig] computing function signature of `x::<impl at /checkout/tests/incremental/krate-inherent.rs:13:5: 13:13>::foo`
#1 [effective_visibilities] checking effective visibilities
#2 [analysis] running analysis passes on crate `krate_inherent`
end of query stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}

------------------------------------------

error in revision `cfail2`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/krate-inherent.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "cfail2" "--check-cfg" "cfg(test,FALSE,cfail1,cfail2)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/krate-inherent/krate-inherent.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/krate-inherent" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Z" "query-dep-graph"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with fn_sig(krate_inherent[a99a]::x::{impl#0}::foo)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (228796) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(krate_inherent[a99a]::x::{impl#0}::foo): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:9 ~ krate_inherent[a99a]::x::{impl#0}::foo::'_)) x::Foo), bound_vars: [Region(BrNamed(DefId(0:9 ~ krate_inherent[a99a]::x::{impl#0}::foo::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::ReachEverythingInTheInterfaceVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::ReachEverythingInTheInterfaceVisitor>::ty
   8: <rustc_privacy::EmbargoVisitor>::check_def_id
   9: rustc_privacy::effective_visibilities
      [... omitted 5 frames ...]
  10: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  11: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  12: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  14: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  15: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  16: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  17: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  18: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0 -Z query-dep-graph

query stack during panic:
#0 [fn_sig] computing function signature of `x::<impl at /checkout/tests/incremental/krate-inherent.rs:13:5: 13:13>::foo`
#1 [effective_visibilities] checking effective visibilities
#2 [analysis] running analysis passes on crate `krate_inherent`
end of query stack
error: aborting due to 1 previous error
------------------------------------------

---- [incremental] tests/incremental/krate-inherent.rs stdout end ----
---- [incremental] tests/incremental/reorder_vtable.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(reorder_vtable[08f9]::Foo::method2)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(reorder_vtable[08f9]::Foo::method2)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (229435) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(reorder_vtable[08f9]::Foo::method2): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:12 ~ reorder_vtable[08f9]::Foo::method2::'_)) Self/#0) -> u32, bound_vars: [Region(BrNamed(DefId(0:12 ~ reorder_vtable[08f9]::Foo::method2::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: rustc_trait_selection::traits::dyn_compatibility::virtual_call_violations_for_method
   7: rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_assoc_item
   8: <core::iter::adapters::flatten::FlatMap<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<(core::option::Option<rustc_span::symbol::Symbol>, rustc_middle::ty::assoc::AssocItem)>, <rustc_data_structures::sorted_map::index_map::SortedIndexMultiMap<u32, core::option::Option<rustc_span::symbol::Symbol>, rustc_middle::ty::assoc::AssocItem>>::iter::{closure#0}>, <rustc_middle::ty::assoc::AssocItems>::in_definition_order::{closure#0}>, alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation>, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_trait::{closure#0}::{closure#0}> as core::iter::traits::iterator::Iterator>::next
   9: <alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation> as alloc::vec::spec_from_iter::SpecFromIter<rustc_middle::traits::DynCompatibilityViolation, core::iter::adapters::flatten::FlatMap<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<(core::option::Option<rustc_span::symbol::Symbol>, rustc_middle::ty::assoc::AssocItem)>, <rustc_data_structures::sorted_map::index_map::SortedIndexMultiMap<u32, core::option::Option<rustc_span::symbol::Symbol>, rustc_middle::ty::assoc::AssocItem>>::iter::{closure#0}>, <rustc_middle::ty::assoc::AssocItems>::in_definition_order::{closure#0}>, alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation>, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_trait::{closure#0}::{closure#0}>>>::from_iter
  10: rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_trait
  11: <core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::iter::sources::from_fn::FromFn<rustc_type_ir::elaborate::supertrait_def_ids<rustc_middle::ty::context::TyCtxt>::{closure#0}>, alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation>, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations::{closure#0}>, core::result::Result<rustc_middle::traits::DynCompatibilityViolation, !>::Ok> as core::iter::traits::iterator::Iterator>::try_fold::<(), <core::iter::adapters::GenericShunt<core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::iter::sources::from_fn::FromFn<rustc_type_ir::elaborate::supertrait_def_ids<rustc_middle::ty::context::TyCtxt>::{closure#0}>, alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation>, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations::{closure#0}>, core::result::Result<rustc_middle::traits::DynCompatibilityViolation, !>::Ok>, core::result::Result<core::convert::Infallible, !>> as core::iter::traits::iterator::Iterator>::try_fold<(), core::iter::traits::iterator::Iterator::try_for_each::call<rustc_middle::traits::DynCompatibilityViolation, core::ops::control_flow::ControlFlow<rustc_middle::traits::DynCompatibilityViolation>, core::ops::control_flow::ControlFlow<rustc_middle::traits::DynCompatibilityViolation>::Break>::{closure#0}, core::ops::control_flow::ControlFlow<rustc_middle::traits::DynCompatibilityViolation>>::{closure#0}, core::ops::control_flow::ControlFlow<core::ops::control_flow::ControlFlow<rustc_middle::traits::DynCompatibilityViolation>>>
  12: rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations
      [... omitted 12 frames ...]
  13: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
  14: std::panicking::catch_unwind::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::try_par_for_each_in<&[rustc_hir::hir::ImplItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_impl_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#1}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  15: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
  16: rustc_hir_analysis::check::wfcheck::check_type_wf
      [... omitted 5 frames ...]
  17: rustc_hir_analysis::check_crate
  18: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  19: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  20: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  21: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  22: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  23: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  24: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  25: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `Foo::method2`
#1 [dyn_compatibility_violations] determining dyn-compatibility of trait `Foo`
#2 [check_type_wf] checking that types are well-formed
#3 [analysis] running analysis passes on crate `reorder_vtable`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 is_dyn_compatible(reorder_vtable[08f9]::Foo)
#1 check_well_formed(reorder_vtable[08f9]::mod1::foo)
end of try_mark_green dep node stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}

------------------------------------------

error in revision `rpass2`: compilation failed!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/reorder_vtable.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "rpass2" "--check-cfg" "cfg(test,FALSE,rpass1,rpass2)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/reorder_vtable/reorder_vtable.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/reorder_vtable/a" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with fn_sig(reorder_vtable[08f9]::Foo::method2)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (229435) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(reorder_vtable[08f9]::Foo::method2): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:12 ~ reorder_vtable[08f9]::Foo::method2::'_)) Self/#0) -> u32, bound_vars: [Region(BrNamed(DefId(0:12 ~ reorder_vtable[08f9]::Foo::method2::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: rustc_trait_selection::traits::dyn_compatibility::virtual_call_violations_for_method
   7: rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_assoc_item
   8: <core::iter::adapters::flatten::FlatMap<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<(core::option::Option<rustc_span::symbol::Symbol>, rustc_middle::ty::assoc::AssocItem)>, <rustc_data_structures::sorted_map::index_map::SortedIndexMultiMap<u32, core::option::Option<rustc_span::symbol::Symbol>, rustc_middle::ty::assoc::AssocItem>>::iter::{closure#0}>, <rustc_middle::ty::assoc::AssocItems>::in_definition_order::{closure#0}>, alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation>, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_trait::{closure#0}::{closure#0}> as core::iter::traits::iterator::Iterator>::next
   9: <alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation> as alloc::vec::spec_from_iter::SpecFromIter<rustc_middle::traits::DynCompatibilityViolation, core::iter::adapters::flatten::FlatMap<core::iter::adapters::map::Map<core::iter::adapters::map::Map<core::slice::iter::Iter<(core::option::Option<rustc_span::symbol::Symbol>, rustc_middle::ty::assoc::AssocItem)>, <rustc_data_structures::sorted_map::index_map::SortedIndexMultiMap<u32, core::option::Option<rustc_span::symbol::Symbol>, rustc_middle::ty::assoc::AssocItem>>::iter::{closure#0}>, <rustc_middle::ty::assoc::AssocItems>::in_definition_order::{closure#0}>, alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation>, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_trait::{closure#0}::{closure#0}>>>::from_iter
  10: rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations_for_trait
  11: <core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::iter::sources::from_fn::FromFn<rustc_type_ir::elaborate::supertrait_def_ids<rustc_middle::ty::context::TyCtxt>::{closure#0}>, alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation>, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations::{closure#0}>, core::result::Result<rustc_middle::traits::DynCompatibilityViolation, !>::Ok> as core::iter::traits::iterator::Iterator>::try_fold::<(), <core::iter::adapters::GenericShunt<core::iter::adapters::map::Map<core::iter::adapters::flatten::FlatMap<core::iter::sources::from_fn::FromFn<rustc_type_ir::elaborate::supertrait_def_ids<rustc_middle::ty::context::TyCtxt>::{closure#0}>, alloc::vec::Vec<rustc_middle::traits::DynCompatibilityViolation>, rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations::{closure#0}>, core::result::Result<rustc_middle::traits::DynCompatibilityViolation, !>::Ok>, core::result::Result<core::convert::Infallible, !>> as core::iter::traits::iterator::Iterator>::try_fold<(), core::iter::traits::iterator::Iterator::try_for_each::call<rustc_middle::traits::DynCompatibilityViolation, core::ops::control_flow::ControlFlow<rustc_middle::traits::DynCompatibilityViolation>, core::ops::control_flow::ControlFlow<rustc_middle::traits::DynCompatibilityViolation>::Break>::{closure#0}, core::ops::control_flow::ControlFlow<rustc_middle::traits::DynCompatibilityViolation>>::{closure#0}, core::ops::control_flow::ControlFlow<core::ops::control_flow::ControlFlow<rustc_middle::traits::DynCompatibilityViolation>>>
  12: rustc_trait_selection::traits::dyn_compatibility::dyn_compatibility_violations
      [... omitted 12 frames ...]
  13: rustc_middle::query::inner::query_ensure_error_guaranteed::<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex>, ()>
  14: std::panicking::catch_unwind::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::try_par_for_each_in<&[rustc_hir::hir::ImplItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_impl_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#1}>::{closure#0}>::{closure#0}::{closure#1}::{closure#0}>>
  15: rustc_data_structures::sync::parallel::try_par_for_each_in::<&[rustc_hir::hir::ItemId], rustc_span::ErrorGuaranteed, <rustc_middle::hir::ModuleItems>::par_items<rustc_hir_analysis::check::wfcheck::check_type_wf::{closure#0}>::{closure#0}>
  16: rustc_hir_analysis::check::wfcheck::check_type_wf
      [... omitted 5 frames ...]
  17: rustc_hir_analysis::check_crate
  18: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  19: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  20: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  21: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  22: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  23: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  24: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  25: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `Foo::method2`
#1 [dyn_compatibility_violations] determining dyn-compatibility of trait `Foo`
#2 [check_type_wf] checking that types are well-formed
#3 [analysis] running analysis passes on crate `reorder_vtable`
end of query stack
there was a panic while trying to force a dep node
try_mark_green dep node stack:
#0 is_dyn_compatible(reorder_vtable[08f9]::Foo)
#1 check_well_formed(reorder_vtable[08f9]::mod1::foo)
end of try_mark_green dep node stack
error: aborting due to 1 previous error
------------------------------------------

---- [incremental] tests/incremental/reorder_vtable.rs stdout end ----
---- [incremental] tests/incremental/thinlto/cgu_invalidated_when_export_added.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(cgu_invalidated_when_export_added[d62f]::{impl#0}::drop)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(cgu_invalidated_when_export_added[d62f]::{impl#0}::drop)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (230315) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(cgu_invalidated_when_export_added[d62f]::{impl#0}::drop): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:16 ~ cgu_invalidated_when_export_added[d62f]::{impl#0}::drop::'_)) mut Foo), bound_vars: [Region(BrNamed(DefId(0:16 ~ cgu_invalidated_when_export_added[d62f]::{impl#0}::drop::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::ReachEverythingInTheInterfaceVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::ReachEverythingInTheInterfaceVisitor>::ty
   8: <rustc_privacy::EmbargoVisitor>::check_def_id
   9: rustc_privacy::effective_visibilities
      [... omitted 5 frames ...]
  10: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  11: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  12: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  14: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  15: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  16: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  17: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  18: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `<impl at /checkout/tests/incremental/thinlto/cgu_invalidated_when_export_added.rs:12:1: 12:18>::drop`
#1 [effective_visibilities] checking effective visibilities
#2 [analysis] running analysis passes on crate `cgu_invalidated_when_export_added`
end of query stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}

------------------------------------------

error in revision `cfail2`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/thinlto/cgu_invalidated_when_export_added.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "cfail2" "--check-cfg" "cfg(test,FALSE,cfail1,cfail2)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/thinlto/cgu_invalidated_when_export_added/cgu_invalidated_when_export_added.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/thinlto/cgu_invalidated_when_export_added" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with fn_sig(cgu_invalidated_when_export_added[d62f]::{impl#0}::drop)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (230315) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(cgu_invalidated_when_export_added[d62f]::{impl#0}::drop): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:16 ~ cgu_invalidated_when_export_added[d62f]::{impl#0}::drop::'_)) mut Foo), bound_vars: [Region(BrNamed(DefId(0:16 ~ cgu_invalidated_when_export_added[d62f]::{impl#0}::drop::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::ReachEverythingInTheInterfaceVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::ReachEverythingInTheInterfaceVisitor>::ty
   8: <rustc_privacy::EmbargoVisitor>::check_def_id
   9: rustc_privacy::effective_visibilities
      [... omitted 5 frames ...]
  10: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  11: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  12: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  14: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  15: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  16: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  17: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  18: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `<impl at /checkout/tests/incremental/thinlto/cgu_invalidated_when_export_added.rs:12:1: 12:18>::drop`
#1 [effective_visibilities] checking effective visibilities
#2 [analysis] running analysis passes on crate `cgu_invalidated_when_export_added`
end of query stack
error: aborting due to 1 previous error
------------------------------------------

---- [incremental] tests/incremental/thinlto/cgu_invalidated_when_export_added.rs stdout end ----
---- [incremental] tests/incremental/thinlto/cgu_invalidated_when_export_removed.rs stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
{"$message_type":"diagnostic","message":"internal compiler error: encountered incremental compilation error with fn_sig(cgu_invalidated_when_export_removed[5874]::{impl#0}::drop)","code":null,"level":"error","spans":[],"children":[{"message":"please follow the instructions below to create a bug report with the provided information","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"for incremental compilation bugs, having a reproduction is vital","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"as a workaround, you can run `cargo clean` to allow your project to compile","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"error: internal compiler error: encountered incremental compilation error with fn_sig(cgu_invalidated_when_export_removed[5874]::{impl#0}::drop)\n   |\n   = note: please follow the instructions below to create a bug report with the provided information\n   = note: for incremental compilation bugs, having a reproduction is vital\n   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again\n   = note: as a workaround, you can run `cargo clean` to allow your project to compile\n\n"}

thread 'rustc' (230360) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(cgu_invalidated_when_export_removed[5874]::{impl#0}::drop): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:15 ~ cgu_invalidated_when_export_removed[5874]::{impl#0}::drop::'_)) mut Foo), bound_vars: [Region(BrNamed(DefId(0:15 ~ cgu_invalidated_when_export_removed[5874]::{impl#0}::drop::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::ReachEverythingInTheInterfaceVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::ReachEverythingInTheInterfaceVisitor>::ty
   8: <rustc_privacy::EmbargoVisitor>::check_def_id
   9: rustc_privacy::effective_visibilities
      [... omitted 5 frames ...]
  10: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  11: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  12: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  14: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  15: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  16: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  17: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  18: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `<impl at /checkout/tests/incremental/thinlto/cgu_invalidated_when_export_removed.rs:12:1: 12:18>::drop`
#1 [effective_visibilities] checking effective visibilities
#2 [analysis] running analysis passes on crate `cgu_invalidated_when_export_removed`
end of query stack
{"$message_type":"diagnostic","message":"aborting due to 1 previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 1 previous error\n\n"}

------------------------------------------

error in revision `cfail2`: test compilation failed although it shouldn't!
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/incremental/thinlto/cgu_invalidated_when_export_removed.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "cfail2" "--check-cfg" "cfg(test,FALSE,cfail1,cfail2)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/thinlto/cgu_invalidated_when_export_removed/cgu_invalidated_when_export_removed.inc" "-Z" "incremental-verify-ich" "-O" "--error-format" "json" "--json" "future-incompat" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/incremental/thinlto/cgu_invalidated_when_export_removed" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error: internal compiler error: encountered incremental compilation error with fn_sig(cgu_invalidated_when_export_removed[5874]::{impl#0}::drop)
   |
   = note: please follow the instructions below to create a bug report with the provided information
   = note: for incremental compilation bugs, having a reproduction is vital
   = note: an ideal reproduction consists of the code before and some patch that then triggers the bug when applied and compiled again
   = note: as a workaround, you can run `cargo clean` to allow your project to compile


thread 'rustc' (230360) panicked at compiler/rustc_query_system/src/query/plumbing.rs:743:9:
Found unstable fingerprints for fn_sig(cgu_invalidated_when_export_removed[5874]::{impl#0}::drop): EarlyBinder { value: Binder { value: fn(&'^0.Named(DefId(0:15 ~ cgu_invalidated_when_export_removed[5874]::{impl#0}::drop::'_)) mut Foo), bound_vars: [Region(BrNamed(DefId(0:15 ~ cgu_invalidated_when_export_removed[5874]::{impl#0}::drop::'_)))] }, .. }
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rustc_query_system::query::plumbing::incremental_verify_ich_failed::<rustc_middle::ty::context::TyCtxt>
   3: rustc_query_system::query::plumbing::incremental_verify_ich::<rustc_middle::ty::context::TyCtxt, rustc_middle::query::erase::Erased<[u8; 24]>>
   4: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#1}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>::{closure#0}, core::option::Option<(rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>>
   5: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   6: <rustc_privacy::DefIdVisitorSkeleton<rustc_privacy::ReachEverythingInTheInterfaceVisitor> as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   7: <rustc_privacy::ReachEverythingInTheInterfaceVisitor>::ty
   8: <rustc_privacy::EmbargoVisitor>::check_def_id
   9: rustc_privacy::effective_visibilities
      [... omitted 5 frames ...]
  10: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::analysis::{closure#0}::{closure#1}::{closure#0}>>
  11: <rustc_session::session::Session>::time::<(), rustc_interface::passes::analysis::{closure#0}>
  12: rustc_interface::passes::analysis
      [... omitted 5 frames ...]
  13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>::{closure#1}, core::option::Option<rustc_interface::queries::Linker>>::{closure#0}, core::option::Option<rustc_interface::queries::Linker>>
  14: <rustc_middle::ty::context::TyCtxt>::create_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}>
  15: <rustc_interface::passes::create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  16: <alloc::boxed::Box<dyn for<'a> core::ops::function::FnOnce<(&'a rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &'a std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena<'a>>, &'a rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena<'a>>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}), Output = core::option::Option<rustc_interface::queries::Linker>>> as core::ops::function::FnOnce<(&rustc_session::session::Session, rustc_middle::ty::context::CurrentGcx, alloc::sync::Arc<rustc_data_structures::jobserver::Proxy>, &std::sync::once_lock::OnceLock<rustc_middle::ty::context::GlobalCtxt>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_middle::arena::Arena>, &rustc_data_structures::sync::worker_local::WorkerLocal<rustc_hir::Arena>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2})>>::call_once
  17: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
  18: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}::{closure#0}>>
  19: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

---
note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (b90a7758a 2026-01-21) running on aarch64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/checkout/vendor -C incremental=[REDACTED] -Z incremental-verify-ich -Z ui-testing -Z deduplicate-diagnostics=no -C prefer-dynamic -C rpath -C debuginfo=0

query stack during panic:
#0 [fn_sig] computing function signature of `<impl at /checkout/tests/incremental/thinlto/cgu_invalidated_when_export_removed.rs:12:1: 12:18>::drop`
#1 [effective_visibilities] checking effective visibilities
#2 [analysis] running analysis passes on crate `cgu_invalidated_when_export_removed`
end of query stack
error: aborting due to 1 previous error
------------------------------------------

---- [incremental] tests/incremental/thinlto/cgu_invalidated_when_export_removed.rs stdout end ----

Comment on lines +371 to +375
let mut full_binders: Vec<ty::BoundVariableKind<'tcx>> =
self.rbv.late_bound_vars.get_mut_or_insert_default(hir_id.local_id).clone();

full_binders.extend(supertrait_bound_vars);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why these changes

assert!(matches!(index_kind, ty::BoundVarIndexKind::Canonical));
opt_values[bv.var()] = Some(*original_value);
opt_values
[<ty::BoundConst as rustc_type_ir::inherent::BoundVarLike<I>>::var(bv)] =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should just be bv.var() still. We shouldn't need the BoundVarLike trait anymore, do we?

Comment on lines +961 to 963
#[derive_where(Clone, Ord, Eq, PartialEq, Hash; I: Interner, T)]
#[derive_where(PartialOrd; I: Interner, T: Ord)]
#[derive_where(Copy; I: Interner, T: Copy, T)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

existing: what are these derive_where 😅 they are an inconsistent mess xd

T: HashStable<CTX>,
{
fn hash_stable(&self, hcx: &mut CTX, hasher: &mut StableHasher) {
self.universe.hash_stable(hcx, hasher);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
self.universe.hash_stable(hcx, hasher);
let Placeholder { universe, bound, _tcx } = self;
universe.hash_stable(hcx, hasher);
bound.hash_stable(hcx, hasher);

while unlikely, this makes sure that we won't forget to update this function when adding a field to placeholder

Comment on lines +1016 to +1017
#[derive_where(Clone, PartialEq, Eq, Hash; I: Interner)]
#[derive_where(Copy; I: Interner)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is the Copy separate here

Comment on lines +1058 to +1059
I::Symbol: Hash,
I::DefId: Hash,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's wrong. these things need to be HashStable. Directly hashing DefIds has different results in different compilation sessions, causing your ICE

Comment on lines +1117 to +1118
#[derive_where(Clone, PartialEq, Eq, Debug, Hash; I: Interner)]
#[derive_where(Copy; I: Interner)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sus derive_where

Comment on lines +1142 to +1143
#[derive_where(Clone, PartialEq, Eq, Debug, Hash; I: Interner)]
#[derive_where(Copy; I: Interner)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

Comment on lines +1197 to +1198
#[derive_where(Clone, PartialEq, Eq, Hash; I: Interner)]
#[derive_where(Copy; I: Interner)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

etc


pub type PlaceholderRegion<I> = ty::Placeholder<I, BoundRegion<I>>;

impl<I: Interner> PlaceholderLike<I> for PlaceholderRegion<I> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove PlaceholderLike, can be inherent methods

}
}

impl<I: Interner> BoundVarLike<I> for BoundRegion<I> {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

Comment on lines +1268 to +1269
#[derive_where(Clone, PartialEq, Eq, Hash; I: Interner)]
#[derive_where(Copy; I: Interner)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

derive_where

}
ty::GenericArgKind::Const(ct) => {
matches!(ct.kind(), ty::ConstKind::Bound(ty::BoundVarIndexKind::Canonical, bc) if bc.var().as_usize() == bv)
matches!(ct.kind(), ty::ConstKind::Bound(ty::BoundVarIndexKind::Canonical, bc) if <ty::BoundConst as BoundVarLike<I>>::var(bc).as_usize() == bv)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no :<

}
ty::GenericArgKind::Const(ct) => {
if matches!(ct.kind(), ty::ConstKind::Bound(ty::BoundVarIndexKind::Canonical, bc) if var == bc.var())
if matches!(ct.kind(), ty::ConstKind::Bound(ty::BoundVarIndexKind::Canonical, bc) if var == <ty::BoundConst as BoundVarLike<I>>::var(bc))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also no

}

type DefId: DefId<Self>;
type DefId: DefId<Self> + Hash;
Copy link
Contributor

@lcnr lcnr Jan 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add HashStable as a requirement to DefId behind a cfg(nightly)

edit: actually, looking at other HashStable<CTX> impls, this just shouldn't be necessary 🤔 we can just add I::DefId: HashStable<CTX> as a where-bound in the impl?

let name = self.opt_item_name(id).unwrap_or_else(|| {
bug!("item_name: no name for {:?}", self.def_path(id));
});
if name != kw::UnderscoreLifetime { Some(name) } else { None }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not add opt_item_name to the interner instead 🤔

I guess we'd need to import kw::UnderscopeLifetime to rustc_middle?

maybe instead add a fn is_kw_underscore_lifetime to I::Symbol/trait Symbol?

@lcnr lcnr self-assigned this Jan 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants