stack backtrace:
0: begin_panic<rustc_errors::ExplicitBug>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panicking.rs:761:5
1: panic_any<rustc_errors::ExplicitBug>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panic.rs:260:5
2: emit_producing_guarantee
at /Users/timch/rust/compiler/rustc_errors/src/diagnostic.rs:58:9
3: emit<rustc_errors::diagnostic::BugAbort>
at /Users/timch/rust/compiler/rustc_errors/src/diagnostic.rs:1282:9
4: bug<alloc::string::String>
at /Users/timch/rust/compiler/rustc_errors/src/lib.rs:928:30
5: {closure#0}<rustc_span::span_encoding::Span>
at /Users/timch/rust/compiler/rustc_middle/src/util/bug.rs:39:48
6: {closure#0}<rustc_middle::util::bug::opt_span_bug_fmt::{closure_env#0}<rustc_span::span_encoding::Span>, !>
at /Users/timch/rust/compiler/rustc_middle/src/ty/context/tls.rs:109:23
7: with_context_opt<rustc_middle::ty::context::tls::with_opt::{closure_env#0}<rustc_middle::util::bug::opt_span_bug_fmt::{closure_env#0}<rustc_span::span_encoding::Span>, !>, !>
at /Users/timch/rust/compiler/rustc_middle/src/ty/context/tls.rs:75:18
8: with_opt<rustc_middle::util::bug::opt_span_bug_fmt::{closure_env#0}<rustc_span::span_encoding::Span>, !>
at /Users/timch/rust/compiler/rustc_middle/src/ty/context/tls.rs:107:5
9: opt_span_bug_fmt<rustc_span::span_encoding::Span>
at /Users/timch/rust/compiler/rustc_middle/src/util/bug.rs:33:5
10: bug_fmt
at /Users/timch/rust/compiler/rustc_middle/src/util/bug.rs:16:5
11: visit_assign
at /Users/timch/rust/compiler/rustc_borrowck/src/borrow_set.rs:313:17
12: super_statement<rustc_borrowck::borrow_set::GatherBorrows>
at /Users/timch/rust/compiler/rustc_middle/src/mir/visit.rs:423:30
13: visit_statement<rustc_borrowck::borrow_set::GatherBorrows>
at /Users/timch/rust/compiler/rustc_middle/src/mir/visit.rs:111:22
14: super_basic_block_data<rustc_borrowck::borrow_set::GatherBorrows>
at /Users/timch/rust/compiler/rustc_middle/src/mir/visit.rs:311:26
15: visit_basic_block_data<rustc_borrowck::borrow_set::GatherBorrows>
at /Users/timch/rust/compiler/rustc_middle/src/mir/visit.rs:88:22
16: build
at /Users/timch/rust/compiler/rustc_borrowck/src/borrow_set.rs:191:21
17: borrowck_collect_region_constraints
at /Users/timch/rust/compiler/rustc_borrowck/src/lib.rs:343:22
18: do_mir_borrowck
at /Users/timch/rust/compiler/rustc_borrowck/src/root_cx.rs:269:26
19: mir_borrowck
at /Users/timch/rust/compiler/rustc_borrowck/src/lib.rs:141:17
[... omitted 28 frames ...]
20: query_ensure_ok_or_done<rustc_data_structures::vec_cache::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::ErasedData<[u8; 8]>, rustc_middle::dep_graph::graph::DepNodeIndex>>
at /Users/timch/rust/compiler/rustc_middle/src/query/inner.rs:63:13
21: mir_borrowck<rustc_span::def_id::LocalDefId>
at /Users/timch/rust/compiler/rustc_middle/src/query/plumbing.rs:589:21
22: {closure#0}
at /Users/timch/rust/compiler/rustc_interface/src/passes.rs:1165:33
23: {closure#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>
at /Users/timch/rust/compiler/rustc_middle/src/hir/map.rs:338:79
24: {closure#0}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>
at /Users/timch/rust/compiler/rustc_data_structures/src/sync/parallel.rs:182:30
25: call_once<(), rustc_data_structures::sync::parallel::par_for_each_in::{closure#0}::{closure#1}::{closure_env#0}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/core/src/panic/unwind_safe.rs:275:9
26: do_call<core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in::{closure#0}::{closure#1}::{closure_env#0}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>>, ()>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panicking.rs:581:40
27: catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in::{closure#0}::{closure#1}::{closure_env#0}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panicking.rs:544:19
28: catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::parallel::par_for_each_in::{closure#0}::{closure#1}::{closure_env#0}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>>, ()>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panic.rs:359:14
29: run<(), rustc_data_structures::sync::parallel::par_for_each_in::{closure#0}::{closure#1}::{closure_env#0}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>>
at /Users/timch/rust/compiler/rustc_data_structures/src/sync/parallel.rs:23:9
30: {closure#1}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>
at /Users/timch/rust/compiler/rustc_data_structures/src/sync/parallel.rs:182:23
31: for_each<rustc_span::def_id::LocalDefId, rustc_data_structures::sync::parallel::par_for_each_in::{closure#0}::{closure_env#1}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/core/src/slice/iter/macros.rs:301:21
32: {closure#0}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>
at /Users/timch/rust/compiler/rustc_data_structures/src/sync/parallel.rs:181:27
33: parallel_guard<(), rustc_data_structures::sync::parallel::par_for_each_in::{closure_env#0}<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>>
at /Users/timch/rust/compiler/rustc_data_structures/src/sync/parallel.rs:39:15
34: par_for_each_in<&rustc_span::def_id::LocalDefId, &[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#3}::par_hir_body_owners::{closure_env#0}<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>>
at /Users/timch/rust/compiler/rustc_data_structures/src/sync/parallel.rs:176:5
35: par_hir_body_owners<rustc_interface::passes::run_required_analyses::{closure#2}::{closure_env#0}>
at /Users/timch/rust/compiler/rustc_middle/src/hir/map.rs:338:9
36: {closure#2}
at /Users/timch/rust/compiler/rustc_interface/src/passes.rs:1155:13
37: run<(), rustc_interface::passes::run_required_analyses::{closure_env#2}>
at /Users/timch/rust/compiler/rustc_data_structures/src/profiling.rs:845:9
38: time<(), rustc_interface::passes::run_required_analyses::{closure_env#2}>
at /Users/timch/rust/compiler/rustc_session/src/utils.rs:17:50
39: run_required_analyses
at /Users/timch/rust/compiler/rustc_interface/src/passes.rs:1154:10
40: analysis
at /Users/timch/rust/compiler/rustc_interface/src/passes.rs:1198:5
[... omitted 28 frames ...]
41: query_ensure_ok_or_done<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 0]>>>
at /Users/timch/rust/compiler/rustc_middle/src/query/inner.rs:63:13
42: analysis
at /Users/timch/rust/compiler/rustc_middle/src/query/plumbing.rs:589:21
43: {closure#2}
at /Users/timch/rust/compiler/rustc_driver_impl/src/lib.rs:325:29
44: {closure#0}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>
at /Users/timch/rust/compiler/rustc_interface/src/passes.rs:1026:80
45: call_once<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt::{closure#2}::{closure_env#0}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/core/src/panic/unwind_safe.rs:275:9
46: do_call<core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::create_and_enter_global_ctxt::{closure#2}::{closure_env#0}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>>, core::option::Option<rustc_interface::queries::Linker>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panicking.rs:581:40
47: catch_unwind<core::option::Option<rustc_interface::queries::Linker>, core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::create_and_enter_global_ctxt::{closure#2}::{closure_env#0}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panicking.rs:544:19
48: catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::passes::create_and_enter_global_ctxt::{closure#2}::{closure_env#0}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>>, core::option::Option<rustc_interface::queries::Linker>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panic.rs:359:14
49: {closure#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>
at /Users/timch/rust/compiler/rustc_interface/src/passes.rs:1026:23
50: {closure#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>
at /Users/timch/rust/compiler/rustc_middle/src/ty/context.rs:788:37
51: {closure#0}<rustc_middle::ty::context::{impl#15}::enter::{closure_env#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>>
at /Users/timch/rust/compiler/rustc_middle/src/ty/context/tls.rs:56:9
52: try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_middle::ty::context::{impl#15}::enter::{closure_env#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/thread/local.rs:462:12
53: with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_middle::ty::context::{impl#15}::enter::{closure_env#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/thread/local.rs:426:20
54: enter_context<rustc_middle::ty::context::{impl#15}::enter::{closure_env#1}<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>, core::option::Option<rustc_interface::queries::Linker>>
at /Users/timch/rust/compiler/rustc_middle/src/ty/context/tls.rs:53:9
55: enter<rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>, core::option::Option<rustc_interface::queries::Linker>>
at /Users/timch/rust/compiler/rustc_middle/src/ty/context.rs:788:9
56: create_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_interface::passes::create_and_enter_global_ctxt::{closure_env#2}<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>>
at /Users/timch/rust/compiler/rustc_middle/src/ty/context.rs:982:13
57: create_and_enter_global_ctxt<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure_env#2}>
at /Users/timch/rust/compiler/rustc_interface/src/passes.rs:986:5
58: {closure#0}
at /Users/timch/rust/compiler/rustc_driver_impl/src/lib.rs:298:22
59: {closure#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>
at /Users/timch/rust/compiler/rustc_interface/src/interface.rs:495:80
60: call_once<(), rustc_interface::interface::run_compiler::{closure#1}::{closure_env#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/core/src/panic/unwind_safe.rs:275:9
61: do_call<core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler::{closure#1}::{closure_env#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>>, ()>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panicking.rs:581:40
62: catch_unwind<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler::{closure#1}::{closure_env#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>>>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panicking.rs:544:19
63: catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<rustc_interface::interface::run_compiler::{closure#1}::{closure_env#0}<(), rustc_driver_impl::run_compiler::{closure_env#0}>>, ()>
at /rustc/ef0fb8a2563200e322fa4419f09f65a63742038c/library/std/src/panic.rs:359:14
64: {closure#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>
at /Users/timch/rust/compiler/rustc_interface/src/interface.rs:495:23
65: {closure#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>
at /Users/timch/rust/compiler/rustc_interface/src/util.rs:205:17
66: {closure#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>
at /Users/timch/rust/compiler/rustc_interface/src/util.rs:161:24
67: set<rustc_span::SessionGlobals, rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>, ()>
at /Users/timch/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scoped-tls-1.0.1/src/lib.rs:137:9
68: create_session_globals_then<(), rustc_interface::util::run_in_thread_with_globals::{closure#0}::{closure#0}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>>
at /Users/timch/rust/compiler/rustc_span/src/lib.rs:154:21
69: {closure#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#1}<(), rustc_driver_impl::run_compiler::{closure_env#0}>, ()>, ()>
at /Users/timch/rust/compiler/rustc_interface/src/util.rs:157:17
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
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 `/Users/timch/foo/rustc-ice-2026-05-08T09_47_34-13835.txt` to your bug report
note: rustc 1.97.0-dev running on aarch64-apple-darwin
note: compiler flags: --crate-type bin -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 [mir_borrowck] borrow-checking `main`
#1 [analysis] running analysis passes on crate `foo`
end of query stack
error: could not compile `foo` (bin "foo") due to 1 previous error
Code
Presumably started ICE-ing in #151753. cc @aapoalas
Meta
rustc --version --verbose:Compiled from the
mainbranch at commit 63b1dfc.Error output
Backtrace