rust-lang / rust-lang/rust

[ICE]: assertion failed: `Binder == Binder`

Open
#160,875 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug F-inherent_associated_types I-ICE needs-triage requires-debug-assertions T-compiler WG-trait-system-refactor
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

auto-reduced (treereduce-rust):

//@compile-flags: -Znext-solver=globally
#![feature(inherent_associated_types)]

struct Foo<T>(T);

impl<'a> Foo<fn(&'a ())> {
    type Assoc = &'a ();
}

fn bar(_: fn(Foo<for<'b> fn(Foo<fn(&'b ())>::Assoc)>::Assoc)) {
    x.bind().bind()
}

original:

//@ compile-flags: -Znext-solver

// Regression test for https://github.com/rust-lang/rust-clippy/issues/17439

#![feature(inherent_associated_types)]

struct Foo<T>(T);

impl<'a> Foo<fn(&'a ())> {
    type Assoc = &'a ();
}

fn bar(_: fn(Foo<for<'b> fn(Foo<fn(&'b ())>::Assoc)>::Assoc)) {
    x.bind(|n| Some(*n + 1) ).bind(|n| Some(n.to_string()) )
}
//~^ ERROR: higher-ranked subtype error
//~| ERROR: higher-ranked subtype error
//~| ERROR: lifetime bound not satisfied [E0478]
//~| ERROR: lifetime bound not satisfied [E0478]

fn main() {}

Version information

rustc 1.99.0-nightly (ea0604237 2026-08-10)
binary: rustc
commit-hash: ea060423749bf6e561c3398f403425c502beb9ba
commit-date: 2026-08-10
host: x86_64-unknown-linux-gnu
release: 1.99.0-nightly
LLVM version: 23.1.0

Possibly related line of code:
https://github.com/rust-lang/rust/blob/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_traits/src/normalize_erasing_regions.rs#L37-L49

Command:
/home/matthias/.rustup/toolchains/alt-master/bin/rustc -Znext-solver=globally

Program output

error[E0425]: cannot find value `x` in this scope
  --> /tmp/icemaker_global_tempdir.MISIcbrZh9Nh/rustc_testrunner_tmpdir_reporting.XaYC78SLqPiP/mvce.rs:10:5
   |
10 |     x.bind().bind()
   |     ^ not found in this scope

warning: the feature `inherent_associated_types` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /tmp/icemaker_global_tempdir.MISIcbrZh9Nh/rustc_testrunner_tmpdir_reporting.XaYC78SLqPiP/mvce.rs:1:12
  |
1 | #![feature(inherent_associated_types)]
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: see issue #8995 <https://github.com/rust-lang/rust/issues/8995> for more information
  = note: `#[warn(incomplete_features)]` on by default

error[E0601]: `main` function not found in crate `mvce`
  --> /tmp/icemaker_global_tempdir.MISIcbrZh9Nh/rustc_testrunner_tmpdir_reporting.XaYC78SLqPiP/mvce.rs:11:2
   |
11 | }
   |  ^ consider adding a `main` function to `/tmp/icemaker_global_tempdir.MISIcbrZh9Nh/rustc_testrunner_tmpdir_reporting.XaYC78SLqPiP/mvce.rs`

error[E0478]: lifetime bound not satisfied
 --> /tmp/icemaker_global_tempdir.MISIcbrZh9Nh/rustc_testrunner_tmpdir_reporting.XaYC78SLqPiP/mvce.rs:9:11
  |
9 | fn bar(_: fn(Foo<for<'b> fn(Foo<fn(&'b ())>::Assoc)>::Assoc)) {
  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


thread 'rustc' (12439) panicked at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_traits/src/normalize_erasing_regions.rs:43:13:
assertion `left == right` failed
  left: Binder { value: fn(?3t), bound_vars: [] }
 right: Binder { value: fn(&'?0 ()), bound_vars: [] }
stack backtrace:
   0:     0x7fcc223a3d40 - std[22b14f5b85705317]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x7fcc223a3d40 - std[22b14f5b85705317]::backtrace_rs::backtrace::trace_unsynchronized::<std[22b14f5b85705317]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x7fcc223a3d40 - std[22b14f5b85705317]::sys::backtrace::_print_fmt
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/sys/backtrace.rs:74:9
   3:     0x7fcc223a3d40 - <<std[22b14f5b85705317]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[5dddf9bbfffd8c7c]::fmt::Display>::fmt
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/sys/backtrace.rs:44:26
   4:     0x7fcc1dc41e4e - <core[5dddf9bbfffd8c7c]::fmt::rt::Argument>::fmt
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/fmt/rt.rs:152:76
   5:     0x7fcc1dc41e4e - core[5dddf9bbfffd8c7c]::fmt::write
   6:     0x7fcc223bae1c - core[5dddf9bbfffd8c7c]::io::write::default_write_fmt::<std[22b14f5b85705317]::sys::stdio::unix::Stderr>
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/io/write.rs:402:11
   7:     0x7fcc223bae1c - <std[22b14f5b85705317]::sys::stdio::unix::Stderr as core[5dddf9bbfffd8c7c]::io::write::Write>::write_fmt
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/io/write.rs:335:13
   8:     0x7fcc22362914 - <std[22b14f5b85705317]::sys::backtrace::BacktraceLock>::print
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/sys/backtrace.rs:47:9
   9:     0x7fcc22362914 - std[22b14f5b85705317]::panicking::default_hook::{closure#0}
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:292:27
  10:     0x7fcc22390131 - std[22b14f5b85705317]::panicking::default_hook
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:319:9
  11:     0x7fcc1ef810e8 - <alloc[efb63163545301f3]::boxed::Box<dyn for<'a, 'b> core[5dddf9bbfffd8c7c]::ops::function::Fn<(&'a std[22b14f5b85705317]::panic::PanicHookInfo<'b>,), Output = ()> + core[5dddf9bbfffd8c7c]::marker::Send + core[5dddf9bbfffd8c7c]::marker::Sync> as core[5dddf9bbfffd8c7c]::ops::function::Fn<(&std[22b14f5b85705317]::panic::PanicHookInfo,)>>::call
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/alloc/src/boxed.rs:2332:9
  12:     0x7fcc1ef810e8 - rustc_driver_impl[1906421d18b7335d]::install_ice_hook::{closure#1}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_driver_impl/src/lib.rs:1483:17
  13:     0x7fcc1ef810e8 - <alloc[efb63163545301f3]::boxed::Box<rustc_driver_impl[1906421d18b7335d]::install_ice_hook::{closure#1}> as core[5dddf9bbfffd8c7c]::ops::function::Fn<(&dyn for<'a, 'b> core[5dddf9bbfffd8c7c]::ops::function::Fn<(&'a std[22b14f5b85705317]::panic::PanicHookInfo<'b>,), Output = ()> + core[5dddf9bbfffd8c7c]::marker::Send + core[5dddf9bbfffd8c7c]::marker::Sync, &std[22b14f5b85705317]::panic::PanicHookInfo)>>::call
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/alloc/src/boxed.rs:2332:9
  14:     0x7fcc1ef810e8 - std[22b14f5b85705317]::panicking::update_hook::<alloc[efb63163545301f3]::boxed::Box<rustc_driver_impl[1906421d18b7335d]::install_ice_hook::{closure#1}>>::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:235:47
  15:     0x7fcc223905ba - <alloc[efb63163545301f3]::boxed::Box<dyn for<'a, 'b> core[5dddf9bbfffd8c7c]::ops::function::Fn<(&'a std[22b14f5b85705317]::panic::PanicHookInfo<'b>,), Output = ()> + core[5dddf9bbfffd8c7c]::marker::Send + core[5dddf9bbfffd8c7c]::marker::Sync> as core[5dddf9bbfffd8c7c]::ops::function::Fn<(&std[22b14f5b85705317]::panic::PanicHookInfo,)>>::call
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/alloc/src/boxed.rs:2332:9
  16:     0x7fcc223905ba - std[22b14f5b85705317]::panicking::panic_with_hook
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:823:13
  17:     0x7fcc223629e2 - std[22b14f5b85705317]::panicking::panic_handler::{closure#0}
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:688:13
  18:     0x7fcc22355499 - std[22b14f5b85705317]::sys::backtrace::__rust_end_short_backtrace::<std[22b14f5b85705317]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/sys/backtrace.rs:182:18
  19:     0x7fcc223649fd - __rustc[2b5bbf6b1a54ce1c]::rust_begin_unwind
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:679:5
  20:     0x7fcc1dc42bbc - core[5dddf9bbfffd8c7c]::panicking::panic_fmt
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/panicking.rs:80:14
  21:     0x7fcc1dc42a23 - core[5dddf9bbfffd8c7c]::panicking::assert_failed_inner
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/panicking.rs:452:17
  22:     0x7fcc1fce41b6 - core[5dddf9bbfffd8c7c]::panicking::assert_failed::<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg, rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/panicking.rs:407:5
  23:     0x7fcc1fda1e05 - rustc_traits[df1abf622d28c43a]::normalize_erasing_regions::try_normalize_after_erasing_regions::<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_traits/src/normalize_erasing_regions.rs:43:13
  24:     0x7fcc1fda1e05 - rustc_traits[df1abf622d28c43a]::normalize_erasing_regions::provide::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_traits/src/normalize_erasing_regions.rs:14:13
  25:     0x7fcc1fda1e05 - <rustc_traits[df1abf622d28c43a]::normalize_erasing_regions::provide::{closure#0} as core[5dddf9bbfffd8c7c]::ops::function::FnOnce<(rustc_middle[6d8e6938889b0909]::ty::context::TyCtxt, rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>)>>::call_once
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/ops/function.rs:250:5
  26:     0x7fcc21394c5a - rustc_query_impl[20bc083e4b3942df]::query_impl::try_normalize_generic_arg_after_erasing_regions::invoke_provider_fn::__rust_begin_short_backtrace
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_query_impl/src/query_impl.rs:118:46
  27:     0x7fcc21114575 - rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr::<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_query_impl/src/execution.rs:422:59
  28:     0x7fcc21114575 - rustc_middle[6d8e6938889b0909]::ty::context::tls::enter_context::<rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/context/tls.rs:56:9
  29:     0x7fcc21114575 - <std[22b14f5b85705317]::thread::local::LocalKey<core[5dddf9bbfffd8c7c]::cell::Cell<*const ()>>>::try_with::<rustc_middle[6d8e6938889b0909]::ty::context::tls::enter_context<rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/thread/local.rs:464:12
  30:     0x7fcc21114575 - <std[22b14f5b85705317]::thread::local::LocalKey<core[5dddf9bbfffd8c7c]::cell::Cell<*const ()>>>::with::<rustc_middle[6d8e6938889b0909]::ty::context::tls::enter_context<rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/thread/local.rs:428:20
  31:     0x7fcc21114575 - rustc_middle[6d8e6938889b0909]::ty::context::tls::enter_context::<rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/context/tls.rs:53:9
  32:     0x7fcc21114575 - rustc_query_impl[20bc083e4b3942df]::plumbing::start_query::<rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_query_impl/src/plumbing.rs:74:9
  33:     0x7fcc21114575 - rustc_middle[6d8e6938889b0909]::ty::context::tls::with_context::<rustc_query_impl[20bc083e4b3942df]::plumbing::start_query<rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/context/tls.rs:86:36
  34:     0x7fcc21114575 - rustc_middle[6d8e6938889b0909]::ty::context::tls::with_context_opt::<rustc_middle[6d8e6938889b0909]::ty::context::tls::with_context<rustc_query_impl[20bc083e4b3942df]::plumbing::start_query<rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/context/tls.rs:75:18
  35:     0x7fcc21114575 - rustc_middle[6d8e6938889b0909]::ty::context::tls::with_context::<rustc_query_impl[20bc083e4b3942df]::plumbing::start_query<rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>::{closure#0}, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/context/tls.rs:86:5
  36:     0x7fcc21114575 - rustc_query_impl[20bc083e4b3942df]::plumbing::start_query::<rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_query_impl/src/plumbing.rs:61:5
  37:     0x7fcc21114575 - rustc_query_impl[20bc083e4b3942df]::execution::execute_job_non_incr::<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_query_impl/src/execution.rs:422:17
  38:     0x7fcc21114575 - rustc_query_impl[20bc083e4b3942df]::execution::try_execute_query::<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>, false>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_query_impl/src/execution.rs:330:17
  39:     0x7fcc21394f80 - rustc_query_impl[20bc083e4b3942df]::execution::execute_query_non_incr_inner::<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_query_impl/src/execution.rs:630:5
  40:     0x7fcc21394f80 - rustc_query_impl[20bc083e4b3942df]::query_impl::try_normalize_generic_arg_after_erasing_regions::execute_query_non_incr::__rust_end_short_backtrace
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_query_impl/src/query_impl.rs:82:30
  41:     0x7fcc202f8f8e - rustc_middle[6d8e6938889b0909]::query::inner::query_get_at::<rustc_middle[6d8e6938889b0909]::query::caches::DefaultCache<rustc_middle[6d8e6938889b0909]::ty::PseudoCanonicalInput<rustc_middle[6d8e6938889b0909]::ty::generic_args::GenericArg>, rustc_middle[6d8e6938889b0909]::query::erase::ErasedData<[u8; 8usize]>>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/query/inner.rs:45:17
  42:     0x7fcc202f8f8e - <rustc_middle[6d8e6938889b0909]::query::plumbing::TyCtxtAt>::try_normalize_generic_arg_after_erasing_regions
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/query/plumbing.rs:564:46
  43:     0x7fcc202f8f8e - <rustc_middle[6d8e6938889b0909]::ty::context::TyCtxt>::try_normalize_generic_arg_after_erasing_regions
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/query/plumbing.rs:552:39
  44:     0x7fcc202f8f8e - <rustc_middle[6d8e6938889b0909]::ty::normalize_erasing_regions::TryNormalizeAfterErasingRegionsFolder>::try_normalize_generic_arg_after_erasing_regions
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/normalize_erasing_regions.rs:241:18
  45:     0x7fcc20735a34 - <rustc_middle[6d8e6938889b0909]::ty::normalize_erasing_regions::TryNormalizeAfterErasingRegionsFolder as rustc_type_ir[c98f5180dae4c47]::fold::FallibleTypeFolder<rustc_middle[6d8e6938889b0909]::ty::context::TyCtxt>>::try_fold_ty
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/normalize_erasing_regions.rs:253:20
  46:     0x7fcc20735a34 - <rustc_middle[6d8e6938889b0909]::ty::Ty as rustc_type_ir[c98f5180dae4c47]::fold::TypeFoldable<rustc_middle[6d8e6938889b0909]::ty::context::TyCtxt>>::try_fold_with::<rustc_middle[6d8e6938889b0909]::ty::normalize_erasing_regions::TryNormalizeAfterErasingRegionsFolder>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/structural_impls.rs:334:16
  47:     0x7fcc20735a34 - <rustc_middle[6d8e6938889b0909]::ty::context::TyCtxt>::try_normalize_erasing_regions::<rustc_middle[6d8e6938889b0909]::ty::Ty>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_middle/src/ty/normalize_erasing_regions.rs:123:19
  




 130:     0x7fcc1ef853d6 - std[22b14f5b85705317]::panicking::catch_unwind::do_call::<core[5dddf9bbfffd8c7c]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}::{closure#0}>, ()>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:576:43
 131:     0x7fcc1ef853d6 - std[22b14f5b85705317]::panicking::catch_unwind::<(), core[5dddf9bbfffd8c7c]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}::{closure#0}>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:544:19
 132:     0x7fcc1ef853d6 - std[22b14f5b85705317]::panic::catch_unwind::<core[5dddf9bbfffd8c7c]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}::{closure#0}>, ()>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panic.rs:359:14
 133:     0x7fcc1ef853d6 - rustc_interface[d4df17323af95b7b]::interface::run_compiler::<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_interface/src/interface.rs:485:23
 134:     0x7fcc1ef6e25b - rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals::<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_interface/src/util.rs:223:17
 135:     0x7fcc1ef6e25b - rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals::<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_interface/src/util.rs:180:24
 136:     0x7fcc1ef6e25b - <scoped_tls[730130f822e64e9b]::ScopedKey<rustc_span[bab0af93da9379dd]::SessionGlobals>>::set::<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
                               at /rust/deps/scoped-tls-1.0.1/src/lib.rs:137:9
 137:     0x7fcc1ef6e25b - rustc_span[bab0af93da9379dd]::create_session_globals_then::<(), rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_span/src/lib.rs:155:21
 138:     0x7fcc1ef6e25b - rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals::<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/compiler/rustc_interface/src/util.rs:176:17
 139:     0x7fcc1ef6e25b - std[22b14f5b85705317]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/sys/backtrace.rs:166:18
 140:     0x7fcc1ef89627 - std[22b14f5b85705317]::thread::lifecycle::spawn_unchecked::<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/thread/lifecycle.rs:70:13
 141:     0x7fcc1ef89627 - <core[5dddf9bbfffd8c7c]::panic::unwind_safe::AssertUnwindSafe<std[22b14f5b85705317]::thread::lifecycle::spawn_unchecked<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}> as core[5dddf9bbfffd8c7c]::ops::function::FnOnce<()>>::call_once
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/panic/unwind_safe.rs:275:9
 142:     0x7fcc1ef89627 - std[22b14f5b85705317]::panicking::catch_unwind::do_call::<core[5dddf9bbfffd8c7c]::panic::unwind_safe::AssertUnwindSafe<std[22b14f5b85705317]::thread::lifecycle::spawn_unchecked<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:576:43
 143:     0x7fcc1ef89627 - std[22b14f5b85705317]::panicking::catch_unwind::<(), core[5dddf9bbfffd8c7c]::panic::unwind_safe::AssertUnwindSafe<std[22b14f5b85705317]::thread::lifecycle::spawn_unchecked<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panicking.rs:544:19
 144:     0x7fcc1ef89627 - std[22b14f5b85705317]::panic::catch_unwind::<core[5dddf9bbfffd8c7c]::panic::unwind_safe::AssertUnwindSafe<std[22b14f5b85705317]::thread::lifecycle::spawn_unchecked<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/panic.rs:359:14
 145:     0x7fcc1ef89627 - std[22b14f5b85705317]::thread::lifecycle::spawn_unchecked::<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/thread/lifecycle.rs:68:26
 146:     0x7fcc1ef89627 - <std[22b14f5b85705317]::thread::lifecycle::spawn_unchecked<rustc_interface[d4df17323af95b7b]::util::run_in_thread_with_globals<rustc_interface[d4df17323af95b7b]::util::run_in_thread_pool_with_globals<rustc_interface[d4df17323af95b7b]::interface::run_compiler<(), rustc_driver_impl[1906421d18b7335d]::run_compiler::{closure#0}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[5dddf9bbfffd8c7c]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /rustc-dev/ea060423749bf6e561c3398f403425c502beb9ba/library/core/src/ops/function.rs:250:5
 147:     0x7fcc2239f90f - <alloc[efb63163545301f3]::boxed::Box<dyn core[5dddf9bbfffd8c7c]::ops::function::FnOnce<(), Output = ()> + core[5dddf9bbfffd8c7c]::marker::Send> as core[5dddf9bbfffd8c7c]::ops::function::FnOnce<()>>::call_once
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/alloc/src/boxed.rs:2318:9
 148:     0x7fcc2239f90f - <std[22b14f5b85705317]::sys::thread::unix::Thread>::new::thread_start
                               at /rustc/ea060423749bf6e561c3398f403425c502beb9ba/library/std/src/sys/thread/unix.rs:123:17
 149:     0x7fcc1c297739 - <unknown>
 150:     0x7fcc1c31bedc - <unknown>
 151:                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: rustc 1.99.0-nightly (ea0604237 2026-08-10) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z next-solver=globally -Z dump-mir-dir=dir

query stack during panic:
#0 [try_normalize_generic_arg_after_erasing_regions] normalizing `fn(Foo<for<'a> fn(Foo<fn(&'a ())>::Assoc)>::Assoc)`
#1 [mir_drops_elaborated_and_const_checked] elaborating drops for `bar`
#2 [analysis] running analysis passes on crate `mvce`
end of query stack
error: aborting due to 3 previous errors; 1 warning emitted

Some errors have detailed explanations: E0425, E0478, E0601.
For more information about an error, try `rustc --explain E0425`.

@rustbot label +F-inherent_associated_types +WG-trait-system-refactor

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the ICE with the reduced a.rs example and -Znext-solver=globally. Start at compiler/rustc_traits/src/normalize_erasing_regions.rs:37-49 and trace the failing normalization assertion. Done means the example no longer panics and the existing higher-ranked lifetime diagnostics remain correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.