Skip to content

[ICE]: Term != Term #160293

Description

@matthiaskrgr

Code

This was reduced from a ~5000 lines version of survive-peano-lesson-queue.rs
rustc -Znext-solver=globally -Zassumptions-on-binders code.rs

use std::marker::PhantomData;
fn hint_app<TArg, TRet>(f: &dyn Fn(TArg) -> TRet) -> &dyn Fn(TArg) -> TRet {
    f
}
enum Coq_Init_Datatypes_list<'a, A> {
    nil(PhantomData<&'a A>),
}
enum CertiCoq_Benchmarks_lib_Binom_tree<'a> {
    Leaf(PhantomData<&'a ()>),
}
type CertiCoq_Benchmarks_lib_Binom_priqueue<'a> =
    &'a Coq_Init_Datatypes_list<'a, &'a CertiCoq_Benchmarks_lib_Binom_tree<'a>>;

struct Program;

impl<'a> Program {
    fn alloc<T>(&'a self, t: T) -> &'a T {
        todo!()
    }
    fn CertiCoq_Benchmarks_lib_Binom_unzip(
        &'a self,
        t: &'a CertiCoq_Benchmarks_lib_Binom_tree,
        cont: &dyn Fn(
            CertiCoq_Benchmarks_lib_Binom_priqueue,
        ) -> CertiCoq_Benchmarks_lib_Binom_priqueue,
    ) -> CertiCoq_Benchmarks_lib_Binom_priqueue {
        match t {
            _ => hint_app(cont)(self.alloc(Coq_Init_Datatypes_list::nil(PhantomData))),
        }
    }
}

fn main() {}

Meta

rustc --version --verbose:

rustc 1.99.0-nightly (fc0f51f5c 2026-07-31)
binary: rustc
commit-hash: fc0f51f5ca44d4586b0e309181382608cd6a8441
commit-date: 2026-07-31
host: x86_64-unknown-linux-gnu
release: 1.99.0-nightly
LLVM version: 22.1.8

Error output

<output>
Backtrace

thread 'rustc' (2735517) panicked at /rustc-dev/fc0f51f5ca44d4586b0e309181382608cd6a8441/compiler/rustc_trait_selection/src/traits/wf.rs:100:5:
assertion `left == right` failed
  left: Term::Ty((?0t,))
 right: Term::Ty((&'?0 Coq_Init_Datatypes_list<'?0, &'?0 CertiCoq_Benchmarks_lib_Binom_tree<'?0>>,))
stack backtrace:
   0:     0x7fc9ad407430 - std[ea517ebb6112ba24]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x7fc9ad407430 - std[ea517ebb6112ba24]::backtrace_rs::backtrace::trace_unsynchronized::<std[ea517ebb6112ba24]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x7fc9ad407430 - std[ea517ebb6112ba24]::sys::backtrace::_print_fmt
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/sys/backtrace.rs:74:9
   3:     0x7fc9ad407430 - <<std[ea517ebb6112ba24]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[52f9a581da6c9b3]::fmt::Display>::fmt
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/sys/backtrace.rs:44:26
   4:     0x7fc9a8c9460e - <core[52f9a581da6c9b3]::fmt::rt::Argument>::fmt
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/core/src/fmt/rt.rs:152:76
   5:     0x7fc9a8c9460e - core[52f9a581da6c9b3]::fmt::write
   6:     0x7fc9ad41e3cc - core[52f9a581da6c9b3]::io::write::default_write_fmt::<std[ea517ebb6112ba24]::sys::stdio::unix::Stderr>
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/core/src/io/write.rs:402:11
   7:     0x7fc9ad41e3cc - <std[ea517ebb6112ba24]::sys::stdio::unix::Stderr as core[52f9a581da6c9b3]::io::write::Write>::write_fmt
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/core/src/io/write.rs:335:13
   8:     0x7fc9ad3c6544 - <std[ea517ebb6112ba24]::sys::backtrace::BacktraceLock>::print
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/sys/backtrace.rs:47:9
   9:     0x7fc9ad3c6544 - std[ea517ebb6112ba24]::panicking::default_hook::{closure#0}
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/panicking.rs:292:27
  10:     0x7fc9ad3f38c1 - std[ea517ebb6112ba24]::panicking::default_hook
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/panicking.rs:319:9
  11:     0x7fc9a9fbb318 - <alloc[e24c4b20d6299b9e]::boxed::Box<dyn for<'a, 'b> core[52f9a581da6c9b3]::ops::function::Fn<(&'a std[ea517ebb6112ba24]::panic::PanicHookInfo<'b>,), Output = ()> + core[52f9a581da6c9b3]::marker::Sync + core[52f9a581da6c9b3]::marker::Send> as core[52f9a581da6c9b3]::ops::function::Fn<(&std[ea517ebb6112ba24]::panic::PanicHookInfo,)>>::call
                               at /rustc-dev/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/alloc/src/boxed.rs:2328:9
  12:     0x7fc9a9fbb318 - rustc_driver_impl[1ccce5d5c7b3c139]::install_ice_hook::{closure#1}
                               at /rustc-dev/fc0f51f5ca44d4586b0e309181382608cd6a8441/compiler/rustc_driver_impl/src/lib.rs:1482:17
  13:     0x7fc9a9fbb318 - <alloc[e24c4b20d6299b9e]::boxed::Box<rustc_driver_impl[1ccce5d5c7b3c139]::install_ice_hook::{closure#1}> as core[52f9a581da6c9b3]::ops::function::Fn<(&dyn for<'a, 'b> core[52f9a581da6c9b3]::ops::function::Fn<(&'a std[ea517ebb6112ba24]::panic::PanicHookInfo<'b>,), Output = ()> + core[52f9a581da6c9b3]::marker::Sync + core[52f9a581da6c9b3]::marker::Send, &std[ea517ebb6112ba24]::panic::PanicHookInfo)>>::call
                               at /rustc-dev/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/alloc/src/boxed.rs:2328:9
  14:     0x7fc9a9fbb318 - std[ea517ebb6112ba24]::panicking::update_hook::<alloc[e24c4b20d6299b9e]::boxed::Box<rustc_driver_impl[1ccce5d5c7b3c139]::install_ice_hook::{closure#1}>>::{closure#0}
                               at /rustc-dev/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/panicking.rs:235:47
  15:     0x7fc9ad3f3d4a - <alloc[e24c4b20d6299b9e]::boxed::Box<dyn for<'a, 'b> core[52f9a581da6c9b3]::ops::function::Fn<(&'a std[ea517ebb6112ba24]::panic::PanicHookInfo<'b>,), Output = ()> + core[52f9a581da6c9b3]::marker::Sync + core[52f9a581da6c9b3]::marker::Send> as core[52f9a581da6c9b3]::ops::function::Fn<(&std[ea517ebb6112ba24]::panic::PanicHookInfo,)>>::call
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/alloc/src/boxed.rs:2328:9
  16:     0x7fc9ad3f3d4a - std[ea517ebb6112ba24]::panicking::panic_with_hook
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/panicking.rs:823:13
  17:     0x7fc9ad3c6612 - std[ea517ebb6112ba24]::panicking::panic_handler::{closure#0}
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/panicking.rs:688:13
  18:     0x7fc9ad3b7799 - std[ea517ebb6112ba24]::sys::backtrace::__rust_end_short_backtrace::<std[ea517ebb6112ba24]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/sys/backtrace.rs:182:18
  19:     0x7fc9ad3c85ed - __rustc[94c23665de18b02f]::rust_begin_unwind
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/panicking.rs:679:5
  20:     0x7fc9a8c9537c - core[52f9a581da6c9b3]::panicking::panic_fmt
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/core/src/panicking.rs:80:14
....
...

 307:     0x7fc9a9fc0e09 - std[ea517ebb6112ba24]::thread::lifecycle::spawn_unchecked::<rustc_interface[3798d609cc9d701a]::util::run_in_thread_with_globals<rustc_interface[3798d609cc9d701a]::util::run_in_thread_pool_with_globals<rustc_interface[3798d609cc9d701a]::interface::run_compiler<(), rustc_driver_impl[1ccce5d5c7b3c139]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}
                               at /rustc-dev/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/thread/lifecycle.rs:68:26
 308:     0x7fc9a9fc0e09 - <std[ea517ebb6112ba24]::thread::lifecycle::spawn_unchecked<rustc_interface[3798d609cc9d701a]::util::run_in_thread_with_globals<rustc_interface[3798d609cc9d701a]::util::run_in_thread_pool_with_globals<rustc_interface[3798d609cc9d701a]::interface::run_compiler<(), rustc_driver_impl[1ccce5d5c7b3c139]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[52f9a581da6c9b3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /rustc-dev/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/core/src/ops/function.rs:250:5
 309:     0x7fc9ad402f9f - <alloc[e24c4b20d6299b9e]::boxed::Box<dyn core[52f9a581da6c9b3]::ops::function::FnOnce<(), Output = ()> + core[52f9a581da6c9b3]::marker::Send> as core[52f9a581da6c9b3]::ops::function::FnOnce<()>>::call_once
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/alloc/src/boxed.rs:2314:9
 310:     0x7fc9ad402f9f - <std[ea517ebb6112ba24]::sys::thread::unix::Thread>::new::thread_start
                               at /rustc/fc0f51f5ca44d4586b0e309181382608cd6a8441/library/std/src/sys/thread/unix.rs:123:17
 311:     0x7fc9a7297739 - <unknown>
 312:     0x7fc9a731bedc - <unknown>
 313:                0x0 - <unknown>

error: the compiler unexpectedly panicked. This is a bug

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

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

note: please attach the file at `/home/matthias/vcs/github/CRED/rustc-ice-2026-07-31T17_17_11-2735515.txt` to your bug report

note: rustc 1.99.0-nightly (fc0f51f5c 2026-07-31) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z next-solver=globally -Z assumptions-on-binders

query stack during panic:
#0 [evaluate_root_goal_for_proof_tree_raw] computing proof tree for `&dyn for<'a> core::ops::function::Fn(&'a Coq_Init_Datatypes_list<'a, &'a CertiCoq_Benchmarks_lib_Binom_tree<'a>>) -> &Coq_Init_Datatypes_list<'_, &CertiCoq_Benchmarks_lib_Binom_tree<'_>>: core::ops::unsize::CoerceUnsized<&dyn core::ops::function::Fn(^c_3) -> ^c_4>` with depth `128`
#1 [typeck_root] type-checking `<impl at code.rs:16:1: 16:17>::CertiCoq_Benchmarks_lib_Binom_unzip`
#2 [analysis] running analysis passes on crate `code`
end of query stack
warning: 4 warnings emitted

Metadata

Metadata

Assignees

No one assigned

    Labels

    -Zassumptions-on-bindersUnstable option: `-Zassumptions-on-bindersC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.requires-debug-assertionsThis issue requires a build of rustc or tooling with debug-assertions in some way

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions