Skip to content

ICE: unstable fingerprints for explicit_supertraits_containing_assoc_item (MetaSized supertrait) from uninhabited_references under incremental + --fix #17262

Description

@azjezz

Summary

cargo clippy --fix ICEs on the second run with an incremental-compilation fingerprint failure:

internal compiler error: encountered incremental compilation error with
explicit_supertraits_containing_assoc_item(7c167f34723db2a3-db377176ff98b4a5)

thread 'rustc' panicked at compiler/rustc_middle/src/verify_ich.rs:82:9:
Found unstable fingerprints for explicit_supertraits_containing_assoc_item(...):
EarlyBinder { value: [(Binder { value: TraitPredicate(<Self as std::marker::MetaSized>,
polarity:Positive), bound_vars: [] }, crates/allocator/src/copy.rs:37:1: 43:2 (#294))], .. }

query stack during panic:
#0 [explicit_supertraits_containing_assoc_item] computing the super traits of `copy::CopyInto` with associated type name `Output`
#1 [analysis] running analysis passes on crate `mago_allocator`

cargo check --workspace --all-targets --all-features (incremental) is clean, only clippy triggers it, via clippy_lints::uninhabited_references calling lower_ty -> resolve_type_relative_path -> explicit_supertraits_containing_assoc_item. The unstable fingerprint is the implicit MetaSized super trait clause of this trait, which has a GAT with an outlives bound:

// crates/allocator/src/copy.rs
pub trait CopyInto {
    type Output<'arena>: 'arena;

    fn copy_into<'arena, A>(&self, arena: &'arena A) -> Self::Output<'arena>
    where
        A: Arena;
}

Reproduction (deterministic, from a clean build)

  1. Check out carthage-software/mago at commit 83720bcde7ce0b0c4830bf5511444b1065623033.
  2. Run finishes cleanly, populating the incremental cache:
    cargo +nightly-2026-06-17 clippy --workspace --all-targets --all-features --fix --allow-dirty --allow-staged
  3. Make any small edit. In my case, a one-token change to a bool literal:
diff --git a/crates/hir/src/lower/statement/mod.rs b/crates/hir/src/lower/statement/mod.rs
@@ -164,7 +164,7 @@ where
                 kind: IdentifierKind::Local,
             },
             value,
-            flattened: false,
+            flattened: true,
         });
  1. Re-run the exact same command -> ICE in mago-allocator (lib test).

cargo clean -p mago_allocator (or cargo clean) clears it until the next edit.

Version

rustc 1.98.0-nightly (9e2abe0c6 2026-06-16)
clippy 0.1.98 (9e2abe0c6a 2026-06-16)
binary: rustc
host: aarch64-apple-darwin
toolchain: nightly-2026-06-17
compiler flags: -C lto=off -C embed-bitcode=no -C debuginfo=2 -C split-debuginfo=unpacked -C

Error output

Backtrace

cargo +nightly-2026-06-17 clippy --workspace --all-targets --all-features --fix --allow-dirty --allow-staged
  Checking mago-twig-syntax v1.30.0 (/Users/azjezz/carthage-software/mago/crates/twig-syntax)
  Checking mago-flags v1.30.0 (/Users/azjezz/carthage-software/mago/crates/flags)
  Checking mago-type-syntax v1.30.0 (/Users/azjezz/carthage-software/mago/crates/type-syntax)
  Checking mago v1.30.0 (/Users/azjezz/carthage-software/mago)
  Checking mago-wasm v1.30.0 (/Users/azjezz/carthage-software/mago/crates/wasm)
  Checking mago-documentation v1.30.0 (/Users/azjezz/carthage-software/mago/docs)
  Checking mago-hir v1.30.0 (/Users/azjezz/carthage-software/mago/crates/hir)
  Checking mago-syntax v1.30.0 (/Users/azjezz/carthage-software/mago/crates/syntax)
  Checking mago-orchestrator v1.30.0 (/Users/azjezz/carthage-software/mago/crates/orchestrator)
  Checking mago-guard v1.30.0 (/Users/azjezz/carthage-software/mago/crates/guard)
  Checking mago-semantics v1.30.0 (/Users/azjezz/carthage-software/mago/crates/semantics)
  Checking mago-formatter v1.30.0 (/Users/azjezz/carthage-software/mago/crates/formatter)
  Checking mago-analyzer v1.30.0 (/Users/azjezz/carthage-software/mago/crates/analyzer)
  Checking mago-prelude v1.30.0 (/Users/azjezz/carthage-software/mago/crates/prelude)
  Checking mago-algebra v1.30.0 (/Users/azjezz/carthage-software/mago/crates/algebra)
  Checking mago-linter v1.30.0 (/Users/azjezz/carthage-software/mago/crates/linter)
  Checking mago-codex v1.30.0 (/Users/azjezz/carthage-software/mago/crates/codex)
  Checking mago-fingerprint v1.30.0 (/Users/azjezz/carthage-software/mago/crates/fingerprint)
  Checking mago-text-edit v1.30.0 (/Users/azjezz/carthage-software/mago/crates/text-edit)
  Checking mago-database v1.30.0 (/Users/azjezz/carthage-software/mago/crates/database)
  Checking mago-phpdoc-syntax v1.30.0 (/Users/azjezz/carthage-software/mago/crates/phpdoc-syntax)
  Checking mago-names v1.30.0 (/Users/azjezz/carthage-software/mago/crates/names)
  Checking mago-docblock v1.30.0 (/Users/azjezz/carthage-software/mago/crates/docblock)
  Checking mago-collector v1.30.0 (/Users/azjezz/carthage-software/mago/crates/collector)
  Checking mago-word v1.30.0 (/Users/azjezz/carthage-software/mago/crates/word)
  Checking mago-reporting v1.30.0 (/Users/azjezz/carthage-software/mago/crates/reporting)
  Checking mago-php-version v1.30.0 (/Users/azjezz/carthage-software/mago/crates/php-version)
  Checking mago-allocator v1.30.0 (/Users/azjezz/carthage-software/mago/crates/allocator)
  Checking mago-syntax-core v1.30.0 (/Users/azjezz/carthage-software/mago/crates/syntax-core)
  Checking mago-composer v1.30.0 (/Users/azjezz/carthage-software/mago/crates/composer)
  Checking mago-span v1.30.0 (/Users/azjezz/carthage-software/mago/crates/span)
  Checking mago-casing v1.30.0 (/Users/azjezz/carthage-software/mago/crates/casing)
  Checking mago-bytes v1.30.0 (/Users/azjezz/carthage-software/mago/crates/bytes)
error: internal compiler error: encountered incremental compilation error with explicit_supertraits_containing_assoc_item(7c167f34723db2a3-db377176ff98b4a5)
|
= 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 -p mago_allocator` or `cargo clean` to allow your project to compile


thread 'rustc' (7981370) panicked at /rustc-dev/9e2abe0c6ab27fcbb95c30695188a75776e2feb1/compiler/rustc_middle/src/verify_ich.rs:82:9:
Found unstable fingerprints for explicit_supertraits_containing_assoc_item(7c167f34723db2a3-db377176ff98b4a5): EarlyBinder { value: [(Binder { value: TraitPredicate(<Self as std::marker::MetaSized>, polarity:Positive), bound_vars: [] }, crates/allocator/src/copy.rs:37:1: 43:2 (#294))], .. }
stack backtrace:
 0:        0x10e1fa054 - <<std[d3783d53da562e31]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[3c5ff4f09fe76026]::fmt::Display>::fmt
 1:        0x10b027edc - core[3c5ff4f09fe76026]::fmt::write
 2:        0x10e210eac - <std[d3783d53da562e31]::sys::stdio::unix::Stderr as std[d3783d53da562e31]::io::Write>::write_fmt
 3:        0x10e1cfb50 - std[d3783d53da562e31]::panicking::default_hook::{closure#0}
 4:        0x10e1eba54 - std[d3783d53da562e31]::panicking::default_hook
 5:        0x10bcfef70 - std[d3783d53da562e31]::panicking::update_hook::<alloc[9a976e6bcb1b2c37]::boxed::Box<rustc_driver_impl[c13d7372b551b7]::install_ice_hook::{closure#1}>>::{closure#0}
 6:        0x10e1ebdb8 - std[d3783d53da562e31]::panicking::panic_with_hook
 7:        0x10e1cfbe0 - std[d3783d53da562e31]::panicking::panic_handler::{closure#0}
 8:        0x10e1c45ac - std[d3783d53da562e31]::sys::backtrace::__rust_end_short_backtrace::<std[d3783d53da562e31]::panicking::panic_handler::{closure#0}, !>
 9:        0x10e1d11b4 - __rustc[ea0685af806a8468]::rust_begin_unwind
10:        0x10e2b6ce0 - core[3c5ff4f09fe76026]::panicking::panic_fmt
11:        0x10e397c28 - rustc_middle[5a33cdd80f13a657]::verify_ich::incremental_verify_ich_failed
12:        0x10d4af5a0 - rustc_middle[5a33cdd80f13a657]::verify_ich::incremental_verify_ich::<rustc_middle[5a33cdd80f13a657]::query::erase::ErasedData<[u8; 16usize]>>
13:        0x10d5683cc - rustc_query_impl[717a2bc7bda723d6]::execution::try_execute_query::<rustc_middle[5a33cdd80f13a657]::query::caches::DefaultCache<(rustc_span[f18fbf591898a2d1]::def_id::DefId, rustc_span[f18fbf591898a2d1]::symbol::Ident), rustc_middle[5a33cdd80f13a657]::query::erase::ErasedData<[u8; 16usize]>>, true>
14:        0x10d6c14f0 - rustc_query_impl[717a2bc7bda723d6]::query_impl::explicit_supertraits_containing_assoc_item::execute_query_incr::__rust_end_short_backtrace
15:        0x10c143dec - <core[3c5ff4f09fe76026]::iter::sources::from_fn::FromFn<rustc_infer[53956927233a6bcc]::traits::util::transitive_bounds_that_define_assoc_item<core[3c5ff4f09fe76026]::iter::adapters::filter_map::FilterMap<core[3c5ff4f09fe76026]::iter::adapters::map::Map<rustc_type_ir[70eff93a3abc5bb7]::binder::IterIdentityCopied<rustc_middle[5a33cdd80f13a657]::ty::context::TyCtxt, &[(rustc_middle[5a33cdd80f13a657]::ty::predicate::Clause, rustc_span[f18fbf591898a2d1]::span_encoding::Span)]>, <rustc_type_ir[70eff93a3abc5bb7]::unnormalized::Unnormalized<rustc_middle[5a33cdd80f13a657]::ty::context::TyCtxt, (rustc_middle[5a33cdd80f13a657]::ty::predicate::Clause, rustc_span[f18fbf591898a2d1]::span_encoding::Span)>>::skip_norm_wip>, <dyn rustc_hir_analysis[dda4eb4b1a1ae029]::hir_ty_lowering::HirTyLowerer>::probe_single_ty_param_bound_for_assoc_item::{closure#0}::{closure#0}::{closure#0}>>::{closure#0}> as core[3c5ff4f09fe76026]::iter::traits::iterator::Iterator>::next
16:        0x10bfe761c - <dyn rustc_hir_analysis[dda4eb4b1a1ae029]::hir_ty_lowering::HirTyLowerer>::probe_single_bound_for_assoc_item::<core[3c5ff4f09fe76026]::iter::sources::from_fn::FromFn<rustc_infer[53956927233a6bcc]::traits::util::transitive_bounds_that_define_assoc_item<core[3c5ff4f09fe76026]::iter::adapters::filter_map::FilterMap<core[3c5ff4f09fe76026]::iter::adapters::map::Map<rustc_type_ir[70eff93a3abc5bb7]::binder::IterIdentityCopied<rustc_middle[5a33cdd80f13a657]::ty::context::TyCtxt, &[(rustc_middle[5a33cdd80f13a657]::ty::predicate::Clause, rustc_span[f18fbf591898a2d1]::span_encoding::Span)]>, <rustc_type_ir[70eff93a3abc5bb7]::unnormalized::Unnormalized<rustc_middle[5a33cdd80f13a657]::ty::context::TyCtxt, (rustc_middle[5a33cdd80f13a657]::ty::predicate::Clause, rustc_span[f18fbf591898a2d1]::span_encoding::Span)>>::skip_norm_wip>, <dyn rustc_hir_analysis[dda4eb4b1a1ae029]::hir_ty_lowering::HirTyLowerer>::probe_single_ty_param_bound_for_assoc_item::{closure#0}::{closure#0}::{closure#0}>>::{closure#0}>, <dyn rustc_hir_analysis[dda4eb4b1a1ae029]::hir_ty_lowering::HirTyLowerer>::probe_single_ty_param_bound_for_assoc_item::{closure#0}::{closure#0}>::{closure#0}
17:        0x10c068814 - <dyn rustc_hir_analysis[dda4eb4b1a1ae029]::hir_ty_lowering::HirTyLowerer>::resolve_type_relative_path
18:        0x10bffe024 - <dyn rustc_hir_analysis[dda4eb4b1a1ae029]::hir_ty_lowering::HirTyLowerer>::lower_type_relative_path::{closure#0}
19:        0x10c001998 - <dyn rustc_hir_analysis[dda4eb4b1a1ae029]::hir_ty_lowering::HirTyLowerer>::lower_type_relative_ty_path::{closure#0}
20:        0x10c06f834 - <dyn rustc_hir_analysis[dda4eb4b1a1ae029]::hir_ty_lowering::HirTyLowerer>::lower_ty
21:        0x10c026430 - rustc_hir_analysis[dda4eb4b1a1ae029]::lower_ty
22:        0x104cbf718 - <clippy_lints[fe29b11fac02b60d]::uninhabited_references::UninhabitedReferences as rustc_lint[1a91eeefb5318701]::passes::LateLintPass>::check_fn
23:        0x104d68f54 - <clippy_lints[fe29b11fac02b60d]::CombinedLateLintPass as rustc_lint[1a91eeefb5318701]::passes::LateLintPass>::check_fn
24:        0x10c7d41c4 - <rustc_lint[1a91eeefb5318701]::late::LateContextAndPass<rustc_lint[1a91eeefb5318701]::late::RuntimeCombinedLateLintPass>>::with_param_env::<<rustc_lint[1a91eeefb5318701]::late::LateContextAndPass<rustc_lint[1a91eeefb5318701]::late::RuntimeCombinedLateLintPass> as rustc_hir[45e3af46f650e39f]::intravisit::Visitor>::visit_item::{closure#0}::{closure#0}>
25:        0x10c9608d4 - <rustc_lint[1a91eeefb5318701]::late::LateContextAndPass<rustc_lint[1a91eeefb5318701]::late::RuntimeCombinedLateLintPass> as rustc_hir[45e3af46f650e39f]::intravisit::Visitor>::visit_item
26:        0x10c7d4264 - <rustc_lint[1a91eeefb5318701]::late::LateContextAndPass<rustc_lint[1a91eeefb5318701]::late::RuntimeCombinedLateLintPass>>::with_param_env::<<rustc_lint[1a91eeefb5318701]::late::LateContextAndPass<rustc_lint[1a91eeefb5318701]::late::RuntimeCombinedLateLintPass> as rustc_hir[45e3af46f650e39f]::intravisit::Visitor>::visit_item::{closure#0}::{closure#0}>
27:        0x10c9608d4 - <rustc_lint[1a91eeefb5318701]::late::LateContextAndPass<rustc_lint[1a91eeefb5318701]::late::RuntimeCombinedLateLintPass> as rustc_hir[45e3af46f650e39f]::intravisit::Visitor>::visit_item
28:        0x10c88ebc4 - rustc_lint[1a91eeefb5318701]::late::check_crate::{closure#0}
29:        0x10c8e5848 - rustc_lint[1a91eeefb5318701]::late::check_crate
30:        0x10c6e83a4 - rustc_interface[2be83b2278345bfe]::passes::analysis::{closure#0}::{closure#0}::{closure#2}
31:        0x10bc9e670 - rustc_data_structures[94ee8582811442b9]::sync::parallel::par_fns
32:        0x10c6ea9cc - rustc_interface[2be83b2278345bfe]::passes::analysis::{closure#0}::{closure#0}
33:        0x10bc9e670 - rustc_data_structures[94ee8582811442b9]::sync::parallel::par_fns
34:        0x10c72cae4 - rustc_interface[2be83b2278345bfe]::passes::analysis
35:        0x10d4f1460 - rustc_query_impl[717a2bc7bda723d6]::execution::try_execute_query::<rustc_middle[5a33cdd80f13a657]::query::caches::SingleCache<rustc_middle[5a33cdd80f13a657]::query::erase::ErasedData<[u8; 0usize]>>, true>
36:        0x10d6c3db4 - rustc_query_impl[717a2bc7bda723d6]::query_impl::analysis::execute_query_incr::__rust_end_short_backtrace
37:        0x10bcb5050 - rustc_interface[2be83b2278345bfe]::passes::create_and_enter_global_ctxt::<core[3c5ff4f09fe76026]::option::Option<rustc_interface[2be83b2278345bfe]::queries::Linker>, rustc_driver_impl[c13d7372b551b7]::run_compiler::{closure#0}::{closure#2}>
38:        0x10bcfe364 - rustc_interface[2be83b2278345bfe]::interface::run_compiler::<(), rustc_driver_impl[c13d7372b551b7]::run_compiler::{closure#0}>::{closure#1}
39:        0x10bcf5ddc - std[d3783d53da562e31]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[2be83b2278345bfe]::util::run_in_thread_with_globals<rustc_interface[2be83b2278345bfe]::util::run_in_thread_pool_with_globals<rustc_interface[2be83b2278345bfe]::interface::run_compiler<(), rustc_driver_impl[c13d7372b551b7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
40:        0x10bd058a4 - <std[d3783d53da562e31]::thread::lifecycle::spawn_unchecked<rustc_interface[2be83b2278345bfe]::util::run_in_thread_with_globals<rustc_interface[2be83b2278345bfe]::util::run_in_thread_pool_with_globals<rustc_interface[2be83b2278345bfe]::interface::run_compiler<(), rustc_driver_impl[c13d7372b551b7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[3c5ff4f09fe76026]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
41:        0x10e1f6b14 - <std[d3783d53da562e31]::sys::thread::unix::Thread>::new::thread_start
42:        0x1819afc58 - __pthread_cond_wait

error: the compiler unexpectedly panicked. This is a bug

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml

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

note: please attach the file at `/Users/azjezz/carthage-software/mago/rustc-ice-2026-06-18T04_27_36-14656.txt` to your bug report

note: rustc 1.98.0-nightly (9e2abe0c6 2026-06-16) running on aarch64-apple-darwin

note: compiler flags: -C lto=off -C embed-bitcode=no -C debuginfo=2 -C split-debuginfo=unpacked -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [explicit_supertraits_containing_assoc_item] computing the super traits of `copy::CopyInto` with associated type name `Output`
#1 [analysis] running analysis passes on crate `mago_allocator`
end of query stack
note: Clippy version: clippy 0.1.98 (9e2abe0c6a 2026-06-16)

error: could not compile `mago-allocator` (lib test) due to 1 previous error
warning: build failed, waiting for other jobs to finish...

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: Clippy is not doing the correct thingI-ICEIssue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions