rust-lang / rust-lang/rust

[ICE]: async iter and async for loop build failed

Open
#155,993 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-bug F-async_drop I-ICE S-needs-repro T-compiler
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

use cargo-ndk to build the android ffi codes cargo ndk -t x86_64 b -r

Code

well... it is a close source project, I can't paste the full codes here, just the failed codes

   |
44 |       pub async gen fn export_statistics(&self) -> Statistic {
   |  ____________________________________________________________^
45 | |         for await (public_key, tunnel) in self.tunnel_manager.all_tunnels() {
46 | |             let Stats {
47 | |                 handshake_time: _handshake_time,
...  |
68 | |     }
   | |_____^
Meta

rustc --version --verbose:

rustc 1.97.0-nightly (c935696dd 2026-04-29)
binary: rustc
commit-hash: c935696dd07ca51e6fba2f6579919eea2a50863b
commit-date: 2026-04-29
host: x86_64-unknown-linux-gnu
release: 1.97.0-nightly
LLVM version: 22.1.4
Error output
error: internal compiler error: /rustc-dev/c935696dd07ca51e6fba2f6579919eea2a50863b/compiler/rustc_mir_transform/src/validate.rs:82:25: broken MIR in FutureDropPollShim(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), Coroutine(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), [Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), std::future::ResumeTy, std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>, (), (&'{erased} wiresquirrel_core::control::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]), (), std::future::ResumeTy, (), (), (*mut Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), std::future::ResumeTy, std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>, (), (&'{erased} wiresquirrel_core::control::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]),)]), Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), std::future::ResumeTy, std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>, (), (&'{erased} wiresquirrel_core::control::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)])) (after phase change to runtime-optimized) at bb16[0]:
                                encountered `_0 = const std::async_iter::async_iter::<impl std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>>::PENDING` with incompatible types:
                                left-hand side has type: std::task::Poll<()>
                                right-hand side has type: std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>
  --> /home/sherlock/git/squirrelholex/wiresquirrel/core/src/control/android.rs:44:60
   |
44 |       pub async gen fn export_statistics(&self) -> Statistic {
   |  ____________________________________________________________^
45 | |         for await (public_key, tunnel) in self.tunnel_manager.all_tunnels() {
46 | |             let Stats {
47 | |                 handshake_time: _handshake_time,
...  |
68 | |     }
   | |_____^


thread 'rustc' (775965) panicked at /rustc-dev/c935696dd07ca51e6fba2f6579919eea2a50863b/compiler/rustc_mir_transform/src/validate.rs:82:25:
Box<dyn Any>
stack backtrace:
   0:     0x7f9d38660fb9 - <<std[d7d0ddfb10bdc7]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[67c42cdc86eeb6b0]::fmt::Display>::fmt
   1:     0x7f9d38c15f88 - core[67c42cdc86eeb6b0]::fmt::write
   2:     0x7f9d386779e6 - <std[d7d0ddfb10bdc7]::sys::stdio::unix::Stderr as std[d7d0ddfb10bdc7]::io::Write>::write_fmt
   3:     0x7f9d3863718e - std[d7d0ddfb10bdc7]::panicking::default_hook::{closure#0}
   4:     0x7f9d38654673 - std[d7d0ddfb10bdc7]::panicking::default_hook
   5:     0x7f9d37650631 - std[d7d0ddfb10bdc7]::panicking::update_hook::<alloc[23a4481fcbb97b7f]::boxed::Box<rustc_driver_impl[50e76e1dd3a4a14e]::install_ice_hook::{closure#1}>>::{closure#0}
   6:     0x7f9d38654952 - std[d7d0ddfb10bdc7]::panicking::panic_with_hook
   7:     0x7f9d3767fe51 - std[d7d0ddfb10bdc7]::panicking::begin_panic::<rustc_errors[e0bcd30e0b1f1c7b]::ExplicitBug>::{closure#0}
   8:     0x7f9d37678cd6 - std[d7d0ddfb10bdc7]::sys::backtrace::__rust_end_short_backtrace::<std[d7d0ddfb10bdc7]::panicking::begin_panic<rustc_errors[e0bcd30e0b1f1c7b]::ExplicitBug>::{closure#0}, !>
   9:     0x7f9d37676bc8 - std[d7d0ddfb10bdc7]::panicking::begin_panic::<rustc_errors[e0bcd30e0b1f1c7b]::ExplicitBug>
  10:     0x7f9d3768b331 - <rustc_errors[e0bcd30e0b1f1c7b]::diagnostic::BugAbort as rustc_errors[e0bcd30e0b1f1c7b]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  11:     0x7f9d37c339bc - <rustc_errors[e0bcd30e0b1f1c7b]::DiagCtxtHandle>::span_bug::<rustc_span[59131b038ab0e4b4]::span_encoding::Span, alloc[23a4481fcbb97b7f]::string::String>
  12:     0x7f9d37c5d8d6 - rustc_middle[c658cc71600ac6d8]::util::bug::opt_span_bug_fmt::<rustc_span[59131b038ab0e4b4]::span_encoding::Span>::{closure#0}
  13:     0x7f9d37c5da82 - rustc_middle[c658cc71600ac6d8]::ty::context::tls::with_opt::<rustc_middle[c658cc71600ac6d8]::util::bug::opt_span_bug_fmt<rustc_span[59131b038ab0e4b4]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  14:     0x7f9d37c4e2bb - rustc_middle[c658cc71600ac6d8]::ty::context::tls::with_context_opt::<rustc_middle[c658cc71600ac6d8]::ty::context::tls::with_opt<rustc_middle[c658cc71600ac6d8]::util::bug::opt_span_bug_fmt<rustc_span[59131b038ab0e4b4]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  15:     0x7f9d35aa6c08 - rustc_middle[c658cc71600ac6d8]::util::bug::span_bug_fmt::<rustc_span[59131b038ab0e4b4]::span_encoding::Span>
  16:     0x7f9d35d4a435 - <rustc_mir_transform[c5ba80edf3b750cd]::validate::CfgChecker>::fail::<alloc[23a4481fcbb97b7f]::string::String>
  17:     0x7f9d3967a6e8 - <rustc_mir_transform[c5ba80edf3b750cd]::validate::Validator as rustc_mir_transform[c5ba80edf3b750cd]::pass_manager::MirPass>::run_pass
  18:     0x7f9d38c08cd0 - rustc_mir_transform[c5ba80edf3b750cd]::run_optimization_passes
  19:     0x7f9d39663817 - rustc_mir_transform[c5ba80edf3b750cd]::shim::make_shim
  20:     0x7f9d396617a0 - rustc_query_impl[88f6ad3e1befde91]::query_impl::mir_shims::invoke_provider_fn::__rust_begin_short_backtrace
  21:     0x7f9d397d8c6d - rustc_query_impl[88f6ad3e1befde91]::execution::try_execute_query::<rustc_middle[c658cc71600ac6d8]::query::caches::DefaultCache<rustc_middle[c658cc71600ac6d8]::ty::instance::InstanceKind, rustc_middle[c658cc71600ac6d8]::query::erase::ErasedData<[u8; 8usize]>>, false>
  22:     0x7f9d397d897f - rustc_query_impl[88f6ad3e1befde91]::query_impl::mir_shims::execute_query_non_incr::__rust_end_short_backtrace
  23:     0x7f9d3970a6fa - <rustc_middle[c658cc71600ac6d8]::ty::context::TyCtxt>::instance_mir
  24:     0x7f9d3970e58b - rustc_monomorphize[22d475880acb4f2e]::collector::items_of_instance
  25:     0x7f9d3970e511 - rustc_query_impl[88f6ad3e1befde91]::query_impl::items_of_instance::invoke_provider_fn::__rust_begin_short_backtrace
  26:     0x7f9d3970b1a4 - rustc_query_impl[88f6ad3e1befde91]::execution::try_execute_query::<rustc_middle[c658cc71600ac6d8]::query::caches::DefaultCache<(rustc_middle[c658cc71600ac6d8]::ty::instance::Instance, rustc_middle[c658cc71600ac6d8]::mono::CollectionMode), rustc_middle[c658cc71600ac6d8]::query::erase::ErasedData<[u8; 32usize]>>, false>
  27:     0x7f9d3970ae0b - rustc_query_impl[88f6ad3e1befde91]::query_impl::items_of_instance::execute_query_non_incr::__rust_end_short_backtrace
  28:     0x7f9d3a08beef - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  29:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  30:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  31:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  32:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  33:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  34:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  35:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  36:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  37:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  38:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  39:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  40:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  41:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  42:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  43:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  44:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  45:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  46:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  47:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  48:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  49:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  50:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  51:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  52:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  53:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  54:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  55:     0x7f9d3a08dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec
  56:     0x7f9d393cad33 - rustc_monomorphize[22d475880acb4f2e]::collector::collect_crate_mono_items::{closure#1}::{closure#0}
  57:     0x7f9d395b00bb - rustc_monomorphize[22d475880acb4f2e]::partitioning::collect_and_partition_mono_items
  58:     0x7f9d395afd56 - rustc_query_impl[88f6ad3e1befde91]::query_impl::collect_and_partition_mono_items::invoke_provider_fn::__rust_begin_short_backtrace
  59:     0x7f9d39d765f4 - rustc_query_impl[88f6ad3e1befde91]::execution::try_execute_query::<rustc_middle[c658cc71600ac6d8]::query::caches::SingleCache<rustc_middle[c658cc71600ac6d8]::query::erase::ErasedData<[u8; 24usize]>>, false>
  60:     0x7f9d39d7638a - rustc_query_impl[88f6ad3e1befde91]::query_impl::collect_and_partition_mono_items::execute_query_non_incr::__rust_end_short_backtrace
  61:     0x7f9d39dfffc9 - rustc_codegen_ssa[47b3149ad30a1ffa]::base::codegen_crate::<rustc_codegen_llvm[922dabe6d3b2b7]::LlvmCodegenBackend>
  62:     0x7f9d39dffccd - <rustc_codegen_llvm[922dabe6d3b2b7]::LlvmCodegenBackend as rustc_codegen_ssa[47b3149ad30a1ffa]::traits::backend::CodegenBackend>::codegen_crate
  63:     0x7f9d39d9aa26 - <rustc_interface[57babec0e12977f3]::queries::Linker>::codegen_and_build_linker
  64:     0x7f9d39d94e6c - rustc_interface[57babec0e12977f3]::interface::run_compiler::<(), rustc_driver_impl[50e76e1dd3a4a14e]::run_compiler::{closure#0}>::{closure#1}
  65:     0x7f9d39d6217e - std[d7d0ddfb10bdc7]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[57babec0e12977f3]::util::run_in_thread_with_globals<rustc_interface[57babec0e12977f3]::util::run_in_thread_pool_with_globals<rustc_interface[57babec0e12977f3]::interface::run_compiler<(), rustc_driver_impl[50e76e1dd3a4a14e]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  66:     0x7f9d39d628ad - <std[d7d0ddfb10bdc7]::thread::lifecycle::spawn_unchecked<rustc_interface[57babec0e12977f3]::util::run_in_thread_with_globals<rustc_interface[57babec0e12977f3]::util::run_in_thread_pool_with_globals<rustc_interface[57babec0e12977f3]::interface::run_compiler<(), rustc_driver_impl[50e76e1dd3a4a14e]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[67c42cdc86eeb6b0]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  67:     0x7f9d39d6366c - <std[d7d0ddfb10bdc7]::sys::thread::unix::Thread>::new::thread_start
  68:     0x7f9d3389697a - <unknown>
  69:     0x7f9d3391a2bc - <unknown>
  70:                0x0 - <unknown>

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/sherlock/git/squirrelholex/native/rustc-ice-2026-04-30T09_41_32-775963.txt` to your bug report

note: rustc 1.97.0-nightly (c935696dd 2026-04-29) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type cdylib -C opt-level=3 -C lto -C linker=/home/sherlock/.cargo/bin/cargo-ndk -C strip=debuginfo

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

query stack during panic:
#0 [mir_shims] generating MIR shim for `core::future::async_drop::async_drop_in_place::{closure#0}`, instance=FutureDropPollShim(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), Coroutine(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), [Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]), (), core::future::ResumeTy, (), (), (*mut Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]),)]), Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]))
#1 [items_of_instance] collecting items used by `core::future::async_drop::async_drop_in_place::<{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()}>::{closure#0} - dropshim({async fn body of core::future::async_drop::async_drop_in_place<{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()}>()}-{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()})`
... and 1 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
warning: `native` (lib) generated 1 warning
error: could not compile `native` (lib); 1 warning emitted

Caused by:
  process didn't exit successfully: `/home/sherlock/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc --crate-name native --edition=2024 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=125 --crate-type cdylib --emit=dep-info,link -C opt-level=3 -C lto --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=2b0f79bd4c92e3b0 --out-dir /home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps --target x86_64-linux-android -C linker=/home/sherlock/.cargo/bin/cargo-ndk -C strip=debuginfo -L dependency=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps -L dependency=/home/sherlock/git/squirrelholex/native/target/release/deps --extern anyhow=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libanyhow-8adfbdc42924b94e.rlib --extern async_trait=/home/sherlock/git/squirrelholex/native/target/release/deps/libasync_trait-59f16db5dbd3440b.so --extern compio=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libcompio-45365857b6bb55d3.rlib --extern crossfire=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libcrossfire-f381fbf155289a1c.rlib --extern cyper=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libcyper-061fe2e8304db2e0.rlib --extern futures_util=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libfutures_util-7787c3840e124231.rlib --extern http=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libhttp-9ea575a34f29afcb.rlib --extern itertools=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libitertools-583f566bec24a083.rlib --extern maxminddb=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libmaxminddb-4d955cf5f922ee6f.rlib --extern mimalloc=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libmimalloc-672374c8b9950d4b.rlib --extern paranoid_android=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libparanoid_android-05c9ddfb8b91ac42.rlib --extern rustls=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/librustls-15f3191e7cc84f43.rlib --extern thiserror=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libthiserror-d1a2db1d51a6dd98.rlib --extern tracing=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libtracing-2252a23a973a96f8.rlib --extern tracing_subscriber=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libtracing_subscriber-d62cdaa93d6e9cc4.rlib --extern uniffi=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libuniffi-a33c70a610c4735f.rlib --extern webpki_root_certs=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libwebpki_root_certs-22168427b0f9c1c4.rlib --extern wiresquirrel_core=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libwiresquirrel_core-8451d0b60e027c64.rlib -L native=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/build/ring-f62e438a978b4876/out -L native=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/build/libmimalloc-sys-5e01b4377365bdd7/out` (exit status: 101)
note: If the build failed due to a missing target, you can run this command:
note:
note:     rustup target install x86_64-linux-android
Backtrace

error: internal compiler error: /rustc-dev/c935696dd07ca51e6fba2f6579919eea2a50863b/compiler/rustc_mir_transform/src/validate.rs:82:25: broken MIR in FutureDropPollShim(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), Coroutine(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), [Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), std::future::ResumeTy, std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>, (), (&'{erased} wiresquirrel_core::control::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]), (), std::future::ResumeTy, (), (), (*mut Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), std::future::ResumeTy, std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>, (), (&'{erased} wiresquirrel_core::control::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]),)]), Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), std::future::ResumeTy, std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>, (), (&'{erased} wiresquirrel_core::control::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)])) (after phase change to runtime-optimized) at bb16[0]:
                                encountered `_0 = const std::async_iter::async_iter::<impl std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>>::PENDING` with incompatible types:
                                left-hand side has type: std::task::Poll<()>
                                right-hand side has type: std::task::Poll<std::option::Option<wiresquirrel_core::control::Statistic>>
  --> /home/sherlock/git/squirrelholex/wiresquirrel/core/src/control/android.rs:44:60
   |
44 |       pub async gen fn export_statistics(&self) -> Statistic {
   |  ____________________________________________________________^
45 | |         for await (public_key, tunnel) in self.tunnel_manager.all_tunnels() {
46 | |             let Stats {
47 | |                 handshake_time: _handshake_time,
...  |
68 | |     }
   | |_____^


thread 'rustc' (780353) panicked at /rustc-dev/c935696dd07ca51e6fba2f6579919eea2a50863b/compiler/rustc_mir_transform/src/validate.rs:82:25:
Box<dyn Any>
stack backtrace:
   0: std::panicking::begin_panic::<rustc_errors::ExplicitBug>
   1: <rustc_errors::diagnostic::BugAbort as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
   2: <rustc_errors::DiagCtxtHandle>::span_bug::<rustc_span::span_encoding::Span, alloc::string::String>
   3: rustc_middle::util::bug::opt_span_bug_fmt::<rustc_span::span_encoding::Span>::{closure#0}
   4: rustc_middle::ty::context::tls::with_opt::<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, !>::{closure#0}
   5: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_opt<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
   6: rustc_middle::util::bug::span_bug_fmt::<rustc_span::span_encoding::Span>
   7: <rustc_mir_transform::validate::CfgChecker>::fail::<alloc::string::String>
   8: <rustc_mir_transform::validate::Validator as rustc_mir_transform::pass_manager::MirPass>::run_pass
   9: rustc_mir_transform::run_optimization_passes
  10: rustc_mir_transform::shim::make_shim
      [... omitted 1 frame ...]
  11: <rustc_middle::ty::context::TyCtxt>::instance_mir
  12: rustc_monomorphize::collector::items_of_instance
      [... omitted 1 frame ...]
  13: rustc_monomorphize::collector::collect_items_rec
  14: rustc_monomorphize::collector::collect_items_rec
  15: rustc_monomorphize::collector::collect_items_rec
  16: rustc_monomorphize::collector::collect_items_rec
  17: rustc_monomorphize::collector::collect_items_rec
  18: rustc_monomorphize::collector::collect_items_rec
  19: rustc_monomorphize::collector::collect_items_rec
  20: rustc_monomorphize::collector::collect_items_rec
  21: rustc_monomorphize::collector::collect_items_rec
  22: rustc_monomorphize::collector::collect_items_rec
  23: rustc_monomorphize::collector::collect_items_rec
  24: rustc_monomorphize::collector::collect_items_rec
  25: rustc_monomorphize::collector::collect_items_rec
  26: rustc_monomorphize::collector::collect_items_rec
  27: rustc_monomorphize::collector::collect_items_rec
  28: rustc_monomorphize::collector::collect_items_rec
  29: rustc_monomorphize::collector::collect_items_rec
  30: rustc_monomorphize::collector::collect_items_rec
  31: rustc_monomorphize::collector::collect_items_rec
  32: rustc_monomorphize::collector::collect_items_rec
  33: rustc_monomorphize::collector::collect_items_rec
  34: rustc_monomorphize::collector::collect_items_rec
  35: rustc_monomorphize::collector::collect_items_rec
  36: rustc_monomorphize::collector::collect_items_rec
  37: rustc_monomorphize::collector::collect_items_rec
  38: rustc_monomorphize::collector::collect_items_rec
  39: rustc_monomorphize::collector::collect_items_rec
  40: rustc_monomorphize::collector::collect_items_rec
  41: rustc_monomorphize::collector::collect_crate_mono_items::{closure#1}::{closure#0}
  42: rustc_monomorphize::partitioning::collect_and_partition_mono_items
      [... omitted 1 frame ...]
  43: rustc_codegen_ssa::base::codegen_crate::<rustc_codegen_llvm::LlvmCodegenBackend>
  44: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate
  45: <rustc_interface::queries::Linker>::codegen_and_build_linker
  46: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}
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 `/home/sherlock/git/squirrelholex/native/rustc-ice-2026-04-30T09_45_21-780351.txt` to your bug report

note: rustc 1.97.0-nightly (c935696dd 2026-04-29) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type cdylib -C opt-level=3 -C lto -C linker=/home/sherlock/.cargo/bin/cargo-ndk -C strip=debuginfo

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

query stack during panic:
#0 [mir_shims] generating MIR shim for `core::future::async_drop::async_drop_in_place::{closure#0}`, instance=FutureDropPollShim(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), Coroutine(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), [Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]), (), core::future::ResumeTy, (), (), (*mut Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]),)]), Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]))
#1 [items_of_instance] collecting items used by `core::future::async_drop::async_drop_in_place::<{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()}>::{closure#0} - dropshim({async fn body of core::future::async_drop::async_drop_in_place<{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()}>()}-{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()})`
#2 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
warning: `native` (lib) generated 1 warning
error: could not compile `native` (lib); 1 warning emitted

Caused by:
  process didn't exit successfully: `/home/sherlock/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc --crate-name native --edition=2024 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=125 --crate-type cdylib --emit=dep-info,link -C opt-level=3 -C lto --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=2b0f79bd4c92e3b0 --out-dir /home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps --target x86_64-linux-android -C linker=/home/sherlock/.cargo/bin/cargo-ndk -C strip=debuginfo -L dependency=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps -L dependency=/home/sherlock/git/squirrelholex/native/target/release/deps --extern anyhow=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libanyhow-8adfbdc42924b94e.rlib --extern async_trait=/home/sherlock/git/squirrelholex/native/target/release/deps/libasync_trait-59f16db5dbd3440b.so --extern compio=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libcompio-45365857b6bb55d3.rlib --extern crossfire=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libcrossfire-f381fbf155289a1c.rlib --extern cyper=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libcyper-061fe2e8304db2e0.rlib --extern futures_util=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libfutures_util-7787c3840e124231.rlib --extern http=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libhttp-9ea575a34f29afcb.rlib --extern itertools=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libitertools-583f566bec24a083.rlib --extern maxminddb=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libmaxminddb-4d955cf5f922ee6f.rlib --extern mimalloc=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libmimalloc-672374c8b9950d4b.rlib --extern paranoid_android=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libparanoid_android-05c9ddfb8b91ac42.rlib --extern rustls=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/librustls-15f3191e7cc84f43.rlib --extern thiserror=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libthiserror-d1a2db1d51a6dd98.rlib --extern tracing=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libtracing-2252a23a973a96f8.rlib --extern tracing_subscriber=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libtracing_subscriber-d62cdaa93d6e9cc4.rlib --extern uniffi=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libuniffi-a33c70a610c4735f.rlib --extern webpki_root_certs=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libwebpki_root_certs-22168427b0f9c1c4.rlib --extern wiresquirrel_core=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/deps/libwiresquirrel_core-8451d0b60e027c64.rlib -L native=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/build/ring-f62e438a978b4876/out -L native=/home/sherlock/git/squirrelholex/native/target/x86_64-linux-android/release/build/libmimalloc-sys-5e01b4377365bdd7/out` (exit status: 101)
note: If the build failed due to a missing target, you can run this command:
note:
note:     rustup target install x86_64-linux-android

the rustc-ice-2026-04-30T09_45_21-780351.txt file is

thread 'rustc' panicked at /rustc-dev/c935696dd07ca51e6fba2f6579919eea2a50863b/compiler/rustc_mir_transform/src/validate.rs:82:25: Box stack backtrace: 0: 0x7fb3f4641d0b - ::create 1: 0x7fb3f4641c55 - ::force_capture 2: 0x7fb3f3650dad - std[d7d0ddfb10bdc7]::panicking::update_hook::>::{closure#0} 3: 0x7fb3f4654952 - std[d7d0ddfb10bdc7]::panicking::panic_with_hook 4: 0x7fb3f367fe51 - std[d7d0ddfb10bdc7]::panicking::begin_panic::::{closure#0} 5: 0x7fb3f3678cd6 - std[d7d0ddfb10bdc7]::sys::backtrace::__rust_end_short_backtrace::::{closure#0}, !> 6: 0x7fb3f3676bc8 - std[d7d0ddfb10bdc7]::panicking::begin_panic:: 7: 0x7fb3f368b331 - ::emit_producing_guarantee 8: 0x7fb3f3c339bc - ::span_bug:: 9: 0x7fb3f3c5d8d6 - rustc_middle[c658cc71600ac6d8]::util::bug::opt_span_bug_fmt::::{closure#0} 10: 0x7fb3f3c5da82 - rustc_middle[c658cc71600ac6d8]::ty::context::tls::with_opt::::{closure#0}, !>::{closure#0} 11: 0x7fb3f3c4e2bb - rustc_middle[c658cc71600ac6d8]::ty::context::tls::with_context_opt::::{closure#0}, !>::{closure#0}, !> 12: 0x7fb3f1aa6c08 - rustc_middle[c658cc71600ac6d8]::util::bug::span_bug_fmt:: 13: 0x7fb3f1d4a435 - ::fail:: 14: 0x7fb3f567a6e8 - ::run_pass 15: 0x7fb3f4c08cd0 - rustc_mir_transform[c5ba80edf3b750cd]::run_optimization_passes 16: 0x7fb3f5663817 - rustc_mir_transform[c5ba80edf3b750cd]::shim::make_shim 17: 0x7fb3f56617a0 - rustc_query_impl[88f6ad3e1befde91]::query_impl::mir_shims::invoke_provider_fn::__rust_begin_short_backtrace 18: 0x7fb3f57d8c6d - rustc_query_impl[88f6ad3e1befde91]::execution::try_execute_query::>, false> 19: 0x7fb3f57d897f - rustc_query_impl[88f6ad3e1befde91]::query_impl::mir_shims::execute_query_non_incr::__rust_end_short_backtrace 20: 0x7fb3f570a6fa - ::instance_mir 21: 0x7fb3f570e58b - rustc_monomorphize[22d475880acb4f2e]::collector::items_of_instance 22: 0x7fb3f570e511 - rustc_query_impl[88f6ad3e1befde91]::query_impl::items_of_instance::invoke_provider_fn::__rust_begin_short_backtrace 23: 0x7fb3f570b1a4 - rustc_query_impl[88f6ad3e1befde91]::execution::try_execute_query::>, false> 24: 0x7fb3f570ae0b - rustc_query_impl[88f6ad3e1befde91]::query_impl::items_of_instance::execute_query_non_incr::__rust_end_short_backtrace 25: 0x7fb3f608beef - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 26: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 27: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 28: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 29: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 30: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 31: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 32: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 33: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 34: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 35: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 36: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 37: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 38: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 39: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 40: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 41: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 42: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 43: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 44: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 45: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 46: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 47: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 48: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 49: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 50: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 51: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 52: 0x7fb3f608dd0e - rustc_monomorphize[22d475880acb4f2e]::collector::collect_items_rec 53: 0x7fb3f53cad33 - rustc_monomorphize[22d475880acb4f2e]::collector::collect_crate_mono_items::{closure#1}::{closure#0} 54: 0x7fb3f55b00bb - rustc_monomorphize[22d475880acb4f2e]::partitioning::collect_and_partition_mono_items 55: 0x7fb3f55afd56 - rustc_query_impl[88f6ad3e1befde91]::query_impl::collect_and_partition_mono_items::invoke_provider_fn::__rust_begin_short_backtrace 56: 0x7fb3f5d765f4 - rustc_query_impl[88f6ad3e1befde91]::execution::try_execute_query::>, false> 57: 0x7fb3f5d7638a - rustc_query_impl[88f6ad3e1befde91]::query_impl::collect_and_partition_mono_items::execute_query_non_incr::__rust_end_short_backtrace 58: 0x7fb3f5dfffc9 - rustc_codegen_ssa[47b3149ad30a1ffa]::base::codegen_crate:: 59: 0x7fb3f5dffccd - ::codegen_crate 60: 0x7fb3f5d9aa26 - ::codegen_and_build_linker 61: 0x7fb3f5d94e6c - rustc_interface[57babec0e12977f3]::interface::run_compiler::<(), rustc_driver_impl[50e76e1dd3a4a14e]::run_compiler::{closure#0}>::{closure#1} 62: 0x7fb3f5d6217e - std[d7d0ddfb10bdc7]::sys::backtrace::__rust_begin_short_backtrace::::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> 63: 0x7fb3f5d628ad - ::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[67c42cdc86eeb6b0]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} 64: 0x7fb3f5d6366c - ::new::thread_start 65: 0x7fb3ef89697a - 66: 0x7fb3ef91a2bc - 67: 0x0 -

rustc version: 1.97.0-nightly (c935696dd 2026-04-29)
platform: x86_64-unknown-linux-gnu

query stack during panic:
#0 [mir_shims] generating MIR shim for core::future::async_drop::async_drop_in_place::{closure#0}, instance=FutureDropPollShim(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), Coroutine(DefId(2:16492 ~ core[be50]::future::async_drop::async_drop_in_place::{closure#0}), [Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]), (), core::future::ResumeTy, (), (), (*mut Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]),)]), Coroutine(DefId(164:37 ~ wiresquirrel_core[fade]::control::android::{impl#1}::export_statistics::{closure#0}), [wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>, (), core::future::ResumeTy, core::task::poll::Poll<core::option::Option<wiresquirrel_core::control::android::Statistic>>, (), (&'{erased} wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>,)]))
#1 [items_of_instance] collecting items used by core::future::async_drop::async_drop_in_place::<{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()}>::{closure#0} - dropshim({async fn body of core::future::async_drop::async_drop_in_place<{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()}>()}-{async gen fn body of wiresquirrel_core::control::android::Control<wiresquirrel_core::quic::peer_manage::PeerManager<wiresquirrel_core::resolve::Resolver>>::export_statistics()})
#2 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack

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

Start by reproducing the failure from core/src/control/android.rs:44 with the reported nightly rustc and cargo ndk -t x86_64 b -r; inspect the validator location at compiler/rustc_mir_transform/src/validate.rs:82:25. Reduce the closed-source example to a minimal public async-iterator or async-for case, then confirm compilation no longer produces an internal compiler error.

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
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.