rust-lang / rust-lang/rust

ICE: SignatureMismatch in codegen_select_candidate when monomorphizing a closure with a generic associated type

Open
#145,188 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug E-needs-mcve I-ICE T-compiler
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

I've encountered an Internal Compiler Error when running tests in release mode. It seems to be related to a SignatureMismatch during code generation when a closure uses a generic associated type.
While I haven't had time to create a minimal, standalone reproduction, I have a public branch with a guaranteed reproduction of the issue.

Code

The code is in the branch: https://github.com/aptos-labs/aptos-core/tree/gelash/reprocompilebug
(The repo can be set up using the dev_setup.sh script: https://github.com/aptos-labs/aptos-core/blob/main/scripts/dev_setup.sh)

Steps to Reproduce

  1. Clone the repository and check out the branch.
  2. cd aptos-move/block-executor
  3. cargo test --release

Observed Behavior
The rustc process panics with an ICE. The bug seems to be triggered when a closure (at aptos-move/block-executor/src/executor.rs:755) is passed to a generic function. The closure's signature uses an associated type T::Tag, which is u32 in the test context. The compiler's code generator seems to fail to unify T::Tag with u32. The bug can be worked around by using a &mut dyn FnMut in the signature, which may suggest it is an inlining or monomorphization issue.

rustc --version --verbose:

rustc 1.86.0 (05f9846f8 2025-03-31)
binary: rustc
commit-hash: 05f9846f893b09a1be1fc8560e33fc3c815cfecb
commit-date: 2025-03-31
host: aarch64-apple-darwin
release: 1.86.0
LLVM version: 19.1.7
Error output
error: internal compiler error: compiler/rustc_traits/src/codegen.rs:45:13: Encountered error `SignatureMismatch(SignatureMismatchData { found_trait_ref: <{closure@aptos-move/block-executor/src/executor.rs:755:60: 755:71} as std::ops::FnMut<(&combinatorial_tests::types::KeyType<[u8; 32]>, std::collections::HashSet<&<TxnType as aptos_types::transaction::BlockExecutableTransaction>::Tag>)>>, expected_trait_ref: <{closure@aptos-move/block-executor/src/executor.rs:755:60: 755:71} as std::ops::FnMut<(&combinatorial_tests::types::KeyType<[u8; 32]>, std::collections::HashSet<&u32>)>>, terr: Sorts(ExpectedFound { expected: u32, found: Alias(Projection, AliasTy { args: [TxnType/#0], def_id: DefId(22:5882 ~ aptos_types[2738]::transaction::BlockExecutableTransaction::Tag), .. }) }) })` selecting `<{closure@aptos-move/block-executor/src/executor.rs:755:60: 755:71} as std::ops::FnMut<(&combinatorial_tests::types::KeyType<[u8; 32]>, std::collections::HashSet<&u32>)>>` during codegen
Backtrace

thread 'rustc' panicked at compiler/rustc_traits/src/codegen.rs:45:13:
Box<dyn Any>
stack backtrace:
   0:        0x10d8bdc78 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h217270392019d164
   1:        0x10b0c03f0 - core::fmt::write::he22fcab56bd3ec61
   2:        0x10d8b23e8 - std::io::Write::write_fmt::hb32eaafcfd249a19
   3:        0x10d8bdb38 - std::sys::backtrace::BacktraceLock::print::h115149c0b879e5c3
   4:        0x10d8bff9c - std::panicking::default_hook::{{closure}}::h5c3a234feebd11a5
   5:        0x10d8bfdec - std::panicking::default_hook::ha0b223ccc4379930
   6:        0x10bb2e5e8 - std[9558dde1fef45f95]::panicking::update_hook::<alloc[a353884198cecfbc]::boxed::Box<rustc_driver_impl[d422414f666c26d7]::install_ice_hook::{closure#1}>>::{closure#0}
   7:        0x10d8c0c18 - std::panicking::rust_panic_with_hook::h203f96c93e7ac62d
   8:        0x10bba86b0 - std[9558dde1fef45f95]::panicking::begin_panic::<rustc_errors[ec173a575dd51043]::ExplicitBug>::{closure#0}
   9:        0x10bb97ef0 - std[9558dde1fef45f95]::sys::backtrace::__rust_end_short_backtrace::<std[9558dde1fef45f95]::panicking::begin_panic<rustc_errors[ec173a575dd51043]::ExplicitBug>::{closure#0}, !>
  10:        0x1103d7270 - std[9558dde1fef45f95]::panicking::begin_panic::<rustc_errors[ec173a575dd51043]::ExplicitBug>
  11:        0x10bbbbc6c - <rustc_errors[ec173a575dd51043]::diagnostic::BugAbort as rustc_errors[ec173a575dd51043]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  12:        0x10c72f1bc - rustc_middle[1801d875c9bb1917]::util::bug::opt_span_bug_fmt::<rustc_span[713c44711d819293]::span_encoding::Span>::{closure#0}
  13:        0x10c6f0f14 - rustc_middle[1801d875c9bb1917]::ty::context::tls::with_opt::<rustc_middle[1801d875c9bb1917]::util::bug::opt_span_bug_fmt<rustc_span[713c44711d819293]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  14:        0x10c6f09f8 - rustc_middle[1801d875c9bb1917]::ty::context::tls::with_context_opt::<rustc_middle[1801d875c9bb1917]::ty::context::tls::with_opt<rustc_middle[1801d875c9bb1917]::util::bug::opt_span_bug_fmt<rustc_span[713c44711d819293]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  15:        0x11044915c - rustc_middle[1801d875c9bb1917]::util::bug::bug_fmt
  16:        0x10d783324 - rustc_traits[ffd9b3a8635c387e]::codegen::codegen_select_candidate
  17:        0x10d0565a4 - rustc_query_impl[fbca8996c8d1b263]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[fbca8996c8d1b263]::query_impl::codegen_select_candidate::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 16usize]>>
  18:        0x10d018158 - <rustc_query_impl[fbca8996c8d1b263]::query_impl::codegen_select_candidate::dynamic_query::{closure#2} as core[b495b0e88a16f434]::ops::function::FnOnce<(rustc_middle[1801d875c9bb1917]::ty::context::TyCtxt, rustc_middle[1801d875c9bb1917]::ty::PseudoCanonicalInput<rustc_type_ir[85ae1dbed8e5a4b2]::predicate::TraitRef<rustc_middle[1801d875c9bb1917]::ty::context::TyCtxt>>)>>::call_once
  19:        0x10ce2da18 - rustc_query_system[ec46976a6e4fb68c]::query::plumbing::try_execute_query::<rustc_query_impl[fbca8996c8d1b263]::DynamicConfig<rustc_query_system[ec46976a6e4fb68c]::query::caches::DefaultCache<rustc_middle[1801d875c9bb1917]::ty::PseudoCanonicalInput<rustc_type_ir[85ae1dbed8e5a4b2]::predicate::TraitRef<rustc_middle[1801d875c9bb1917]::ty::context::TyCtxt>>, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[fbca8996c8d1b263]::plumbing::QueryCtxt, false>
  20:        0x10d097080 - rustc_query_impl[fbca8996c8d1b263]::query_impl::codegen_select_candidate::get_query_non_incr::__rust_end_short_backtrace
  21:        0x10d824638 - rustc_ty_utils[817a870146b9d52]::instance::resolve_instance_raw
  22:        0x10d055178 - rustc_query_impl[fbca8996c8d1b263]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[fbca8996c8d1b263]::query_impl::resolve_instance_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 32usize]>>
  23:        0x10d00b8f0 - <rustc_query_impl[fbca8996c8d1b263]::query_impl::resolve_instance_raw::dynamic_query::{closure#2} as core[b495b0e88a16f434]::ops::function::FnOnce<(rustc_middle[1801d875c9bb1917]::ty::context::TyCtxt, rustc_middle[1801d875c9bb1917]::ty::PseudoCanonicalInput<(rustc_span[713c44711d819293]::def_id::DefId, &rustc_middle[1801d875c9bb1917]::ty::list::RawList<(), rustc_middle[1801d875c9bb1917]::ty::generic_args::GenericArg>)>)>>::call_once
  24:        0x10ce40458 - rustc_query_system[ec46976a6e4fb68c]::query::plumbing::try_execute_query::<rustc_query_impl[fbca8996c8d1b263]::DynamicConfig<rustc_query_system[ec46976a6e4fb68c]::query::caches::DefaultCache<rustc_middle[1801d875c9bb1917]::ty::PseudoCanonicalInput<(rustc_span[713c44711d819293]::def_id::DefId, &rustc_middle[1801d875c9bb1917]::ty::list::RawList<(), rustc_middle[1801d875c9bb1917]::ty::generic_args::GenericArg>)>, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[fbca8996c8d1b263]::plumbing::QueryCtxt, false>
  25:        0x10d0cb1e8 - rustc_query_impl[fbca8996c8d1b263]::query_impl::resolve_instance_raw::get_query_non_incr::__rust_end_short_backtrace
  26:        0x10c760240 - <rustc_middle[1801d875c9bb1917]::ty::instance::Instance>::try_resolve
  27:        0x10ca875bc - rustc_mir_transform[63c2c41f0ddad62]::inline::cycle::mir_callgraph_reachable::process
  28:        0x10ca87c60 - rustc_mir_transform[63c2c41f0ddad62]::inline::cycle::mir_callgraph_reachable::process
  29:        0x10ca87c60 - rustc_mir_transform[63c2c41f0ddad62]::inline::cycle::mir_callgraph_reachable::process
  30:        0x10ca87c60 - rustc_mir_transform[63c2c41f0ddad62]::inline::cycle::mir_callgraph_reachable::process
  31:        0x10ca87c60 - rustc_mir_transform[63c2c41f0ddad62]::inline::cycle::mir_callgraph_reachable::process
  32:        0x10ca87c60 - rustc_mir_transform[63c2c41f0ddad62]::inline::cycle::mir_callgraph_reachable::process
  33:        0x10ca86fc0 - rustc_mir_transform[63c2c41f0ddad62]::inline::cycle::mir_callgraph_reachable
  34:        0x10d056194 - rustc_query_impl[fbca8996c8d1b263]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[fbca8996c8d1b263]::query_impl::mir_callgraph_reachable::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 1usize]>>
  35:        0x10d0142f4 - <rustc_query_impl[fbca8996c8d1b263]::query_impl::mir_callgraph_reachable::dynamic_query::{closure#2} as core[b495b0e88a16f434]::ops::function::FnOnce<(rustc_middle[1801d875c9bb1917]::ty::context::TyCtxt, (rustc_middle[1801d875c9bb1917]::ty::instance::Instance, rustc_span[713c44711d819293]::def_id::LocalDefId))>>::call_once
  36:        0x10ce96c40 - rustc_query_system[ec46976a6e4fb68c]::query::plumbing::try_execute_query::<rustc_query_impl[fbca8996c8d1b263]::DynamicConfig<rustc_query_system[ec46976a6e4fb68c]::query::caches::DefaultCache<(rustc_middle[1801d875c9bb1917]::ty::instance::Instance, rustc_span[713c44711d819293]::def_id::LocalDefId), rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[fbca8996c8d1b263]::plumbing::QueryCtxt, false>
  37:        0x10d083dbc - rustc_query_impl[fbca8996c8d1b263]::query_impl::mir_callgraph_reachable::get_query_non_incr::__rust_end_short_backtrace
  38:        0x10c903608 - rustc_middle[1801d875c9bb1917]::query::plumbing::query_get_at::<rustc_query_system[ec46976a6e4fb68c]::query::caches::DefaultCache<(rustc_middle[1801d875c9bb1917]::ty::instance::Instance, rustc_span[713c44711d819293]::def_id::LocalDefId), rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 1usize]>>>
  39:        0x10ca3bb88 - rustc_mir_transform[63c2c41f0ddad62]::inline::process_blocks::<rustc_mir_transform[63c2c41f0ddad62]::inline::NormalInliner>
  40:        0x10ca39210 - <rustc_mir_transform[63c2c41f0ddad62]::inline::Inline as rustc_mir_transform[63c2c41f0ddad62]::pass_manager::MirPass>::run_pass
  41:        0x10c9cd820 - rustc_mir_transform[63c2c41f0ddad62]::pass_manager::run_passes_inner
  42:        0x10c9ebefc - rustc_mir_transform[63c2c41f0ddad62]::optimized_mir
  43:        0x10d052178 - rustc_query_impl[fbca8996c8d1b263]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[fbca8996c8d1b263]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 8usize]>>
  44:        0x10ce1c9b4 - rustc_query_system[ec46976a6e4fb68c]::query::plumbing::try_execute_query::<rustc_query_impl[fbca8996c8d1b263]::DynamicConfig<rustc_query_system[ec46976a6e4fb68c]::query::caches::DefIdCache<rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[fbca8996c8d1b263]::plumbing::QueryCtxt, false>
  45:        0x10d06d4f0 - rustc_query_impl[fbca8996c8d1b263]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
  46:        0x10c741128 - rustc_middle[1801d875c9bb1917]::query::plumbing::query_get_at::<rustc_query_system[ec46976a6e4fb68c]::query::caches::DefIdCache<rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 8usize]>>>
  47:        0x10c764698 - <rustc_middle[1801d875c9bb1917]::ty::context::TyCtxt>::instance_mir
  48:        0x10cacc738 - rustc_monomorphize[421758cb76b7250a]::mono_checks::check_mono_item
  49:        0x10d052ba0 - rustc_query_impl[fbca8996c8d1b263]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[fbca8996c8d1b263]::query_impl::check_mono_item::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 0usize]>>
  50:        0x10cff270c - <rustc_query_impl[fbca8996c8d1b263]::query_impl::check_mono_item::dynamic_query::{closure#2} as core[b495b0e88a16f434]::ops::function::FnOnce<(rustc_middle[1801d875c9bb1917]::ty::context::TyCtxt, rustc_middle[1801d875c9bb1917]::ty::instance::Instance)>>::call_once
  51:        0x10ce738b4 - rustc_query_system[ec46976a6e4fb68c]::query::plumbing::try_execute_query::<rustc_query_impl[fbca8996c8d1b263]::DynamicConfig<rustc_query_system[ec46976a6e4fb68c]::query::caches::DefaultCache<rustc_middle[1801d875c9bb1917]::ty::instance::Instance, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[fbca8996c8d1b263]::plumbing::QueryCtxt, false>
  52:        0x10d0d268c - rustc_query_impl[fbca8996c8d1b263]::query_impl::check_mono_item::get_query_non_incr::__rust_end_short_backtrace
  53:        0x10caca078 - rustc_monomorphize[421758cb76b7250a]::collector::items_of_instance
  54:        0x10d053fb0 - rustc_query_impl[fbca8996c8d1b263]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[fbca8996c8d1b263]::query_impl::items_of_instance::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 32usize]>>
  55:        0x10d0008fc - <rustc_query_impl[fbca8996c8d1b263]::query_impl::items_of_instance::dynamic_query::{closure#2} as core[b495b0e88a16f434]::ops::function::FnOnce<(rustc_middle[1801d875c9bb1917]::ty::context::TyCtxt, (rustc_middle[1801d875c9bb1917]::ty::instance::Instance, rustc_middle[1801d875c9bb1917]::mir::mono::CollectionMode))>>::call_once
  56:        0x10ce98ea0 - rustc_query_system[ec46976a6e4fb68c]::query::plumbing::try_execute_query::<rustc_query_impl[fbca8996c8d1b263]::DynamicConfig<rustc_query_system[ec46976a6e4fb68c]::query::caches::DefaultCache<(rustc_middle[1801d875c9bb1917]::ty::instance::Instance, rustc_middle[1801d875c9bb1917]::mir::mono::CollectionMode), rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[fbca8996c8d1b263]::plumbing::QueryCtxt, false>
  57:        0x10d0d3404 - rustc_query_impl[fbca8996c8d1b263]::query_impl::items_of_instance::get_query_non_incr::__rust_end_short_backtrace
  58:        0x10cadc1a0 - rustc_monomorphize[421758cb76b7250a]::collector::collect_items_rec::{closure#0}
  59:        0x10cadaaf8 - rustc_monomorphize[421758cb76b7250a]::collector::collect_items_rec
  60:        0x10cadb8f0 - rustc_monomorphize[421758cb76b7250a]::collector::collect_items_rec
  61:        0x10cadb8f0 - rustc_monomorphize[421758cb76b7250a]::collector::collect_items_rec
  62:        0x10cadb8f0 - rustc_monomorphize[421758cb76b7250a]::collector::collect_items_rec
  63:        0x10cadb8f0 - rustc_monomorphize[421758cb76b7250a]::collector::collect_items_rec
  64:        0x10cadb8f0 - rustc_monomorphize[421758cb76b7250a]::collector::collect_items_rec
  65:        0x10cadf29c - rustc_monomorphize[421758cb76b7250a]::collector::collect_crate_mono_items
  66:        0x10cad6b64 - rustc_monomorphize[421758cb76b7250a]::partitioning::collect_and_partition_mono_items
  67:        0x10d0572f4 - rustc_query_impl[fbca8996c8d1b263]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[fbca8996c8d1b263]::query_impl::collect_and_partition_mono_items::dynamic_query::{closure#2}::{closure#0}, rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 40usize]>>
  68:        0x10ce27354 - rustc_query_system[ec46976a6e4fb68c]::query::plumbing::try_execute_query::<rustc_query_impl[fbca8996c8d1b263]::DynamicConfig<rustc_query_system[ec46976a6e4fb68c]::query::caches::SingleCache<rustc_middle[1801d875c9bb1917]::query::erase::Erased<[u8; 40usize]>>, false, false, false>, rustc_query_impl[fbca8996c8d1b263]::plumbing::QueryCtxt, false>
  69:        0x10d0ba054 - rustc_query_impl[fbca8996c8d1b263]::query_impl::collect_and_partition_mono_items::get_query_non_incr::__rust_end_short_backtrace
  70:        0x10b79e204 - rustc_codegen_ssa[5f097e4fbee12d7c]::base::codegen_crate::<rustc_codegen_llvm[a059380f87bfc1b0]::LlvmCodegenBackend>
  71:        0x10b88f5a8 - <rustc_codegen_llvm[a059380f87bfc1b0]::LlvmCodegenBackend as rustc_codegen_ssa[5f097e4fbee12d7c]::traits::backend::CodegenBackend>::codegen_crate
  72:        0x10c38a010 - <rustc_interface[3ca3d7ac74064029]::queries::Linker>::codegen_and_build_linker
  73:        0x10badf934 - rustc_interface[3ca3d7ac74064029]::passes::create_and_enter_global_ctxt::<core[b495b0e88a16f434]::option::Option<rustc_interface[3ca3d7ac74064029]::queries::Linker>, rustc_driver_impl[d422414f666c26d7]::run_compiler::{closure#0}::{closure#2}>
  74:        0x10bb2c9d4 - rustc_interface[3ca3d7ac74064029]::interface::run_compiler::<(), rustc_driver_impl[d422414f666c26d7]::run_compiler::{closure#0}>::{closure#1}
  75:        0x10bb1daa4 - std[9558dde1fef45f95]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[3ca3d7ac74064029]::util::run_in_thread_with_globals<rustc_interface[3ca3d7ac74064029]::util::run_in_thread_pool_with_globals<rustc_interface[3ca3d7ac74064029]::interface::run_compiler<(), rustc_driver_impl[d422414f666c26d7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  76:        0x10bb320fc - <<std[9558dde1fef45f95]::thread::Builder>::spawn_unchecked_<rustc_interface[3ca3d7ac74064029]::util::run_in_thread_with_globals<rustc_interface[3ca3d7ac74064029]::util::run_in_thread_pool_with_globals<rustc_interface[3ca3d7ac74064029]::interface::run_compiler<(), rustc_driver_impl[d422414f666c26d7]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[b495b0e88a16f434]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  77:        0x10d8cb6b4 - std::sys::pal::unix::thread::Thread::new::thread_start::h6d53b1b0c047a3b9
  78:        0x199c9fc0c - __pthread_cond_wait

note: compiler flags: -C opt-level=3 -C embed-bitcode=no -C debuginfo=2 -C split-debuginfo=unpacked -C overflow-checks=on -C force-frame-pointers=yes -C force-unwind-tables=yes

query stack during panic:
#0 [codegen_select_candidate] computing candidate for `<{closure@aptos-move/block-executor/src/executor.rs:755:60: 755:71} as core::ops::function::FnMut<(&combinatorial_tests::types::KeyType<[u8; 32]>, std::collections::hash::set::HashSet<&u32>)>>`
#1 [resolve_instance_raw] resolving instance `<{closure@aptos-move/block-executor/src/executor.rs:755:60: 755:71} as core::ops::function::FnMut<(&combinatorial_tests::types::KeyType<[u8; 32]>, std::collections::hash::set::HashSet<&u32>)>>::call_mut`
#2 [mir_callgraph_reachable] computing if `executor::<impl at aptos-move/block-executor/src/executor.rs:111:1: 117:31>::execute_transactions_parallel_v2` (transitively) calls `combinatorial_tests::resource_tests::execute_block_parallel`
#3 [optimized_mir] optimizing MIR for `combinatorial_tests::resource_tests::execute_block_parallel`
#4 [check_mono_item] monomorphization-time checking
#5 [items_of_instance] collecting items used by `combinatorial_tests::resource_tests::execute_block_parallel::<combinatorial_tests::types::MockTransaction<combinatorial_tests::types::KeyType<[u8; 32]>, combinatorial_tests::mock_executor::MockEvent>, combinatorial_tests::types::NonEmptyGroupDataView<combinatorial_tests::types::KeyType<[u8; 32]>>, txn_provider::default::DefaultTxnProvider<combinatorial_tests::types::MockTransaction<combinatorial_tests::types::KeyType<[u8; 32]>, combinatorial_tests::mock_executor::MockEvent>>>`
#6 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack

error: could not compile `aptos-block-executor` (lib test)

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

Run scripts/dev_setup.sh, check out the gelash/reprocompilebug branch, then run cargo test --release in aptos-move/block-executor to reproduce the ICE. Inspect aptos-move/block-executor/src/executor.rs:755 and the rustc_traits codegen.rs:45 failure, using the reported closure workaround as context; done should be a reliable reproduction and a compiler change that prevents the panic.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.