Skip to content

when dependency enable async_drop feature, it cause ICE #140858

@Sherlock-Holo

Description

@Sherlock-Holo

Code

the lib.rs https://play.rust-lang.org/?version=nightly&mode=debug&edition=2024&gist=e3445d1d48c59d1535129148ff8ff681
the main.rs https://play.rust-lang.org/?version=nightly&mode=debug&edition=2024&gist=71b08ed816421d78b89b213eaedba212

the user_stack crate is a local project and not yet open source, but it enabled the async_drop nightly feature by add dep in Cargo.toml

user_stack = { path = "../user_stack", features = ["async_drop"] }

Meta

rustc --version --verbose:

rustc 1.88.0-nightly (50aa04180 2025-05-08)
binary: rustc
commit-hash: 50aa04180709189a03dde5fd1c05751b2625ed37
commit-date: 2025-05-08
host: x86_64-unknown-linux-gnu
release: 1.88.0-nightly
LLVM version: 20.1.4

Error output

thread 'rustc' panicked at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/compiler/rustc_span/src/def_id.rs:393:26:
DefId::expect_local: `DefId(56:141 ~ user_stack[92be]::tcp::{impl#3})` isn't local
stack backtrace:
   0:     0x77398a763923 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h35b8f72326f85230
   1:     0x77398ae05c07 - core::fmt::write::h73f5af0fa08ac030
   2:     0x77398bee42d1 - std::io::Write::write_fmt::h0140e0dae4becf43
   3:     0x77398a763782 - std::sys::backtrace::BacktraceLock::print::h2c50f8265df4edf7
   4:     0x77398a76737a - std::panicking::default_hook::{{closure}}::h4f831a137f70e67f
   5:     0x77398a766eff - std::panicking::default_hook::h47af645a18677257
   6:     0x773989795ef3 - std[e444442488e5ea2d]::panicking::update_hook::<alloc[24374ce535a764d]::boxed::Box<rustc_driver_impl[d80da60e87609ad4]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x77398a767bf3 - std::panicking::rust_panic_with_hook::h2b8636e09e17cf97
   8:     0x77398a7678ea - std::panicking::begin_panic_handler::{{closure}}::h21b513d3b95c0c8c
   9:     0x77398a763de9 - std::sys::backtrace::__rust_end_short_backtrace::h1fff5f9fcecd2e0e
  10:     0x77398a7675ad - __rustc[f67a3b4e60d8f4c4]::rust_begin_unwind
  11:     0x773987085ce0 - core::panicking::panic_fmt::h0a5d5e7acfcd4e48
  12:     0x773989d88c58 - <rustc_span[e6282e50b7a97c05]::def_id::LocalDefId as rustc_serialize[c7460d2e773e40d7]::serialize::Decodable<rustc_metadata[7b714db6b508e6c0]::rmeta::decoder::DecodeContext>>::decode
  13:     0x773989d9d77a - rustc_metadata[7b714db6b508e6c0]::rmeta::decoder::cstore_impl::provide_extern::adt_async_destructor
  14:     0x77398c8ab872 - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::adt_async_destructor::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 4usize]>>.cold
  15:     0x77398b7f67fd - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_query_system[ff49814a586d4008]::query::caches::DefIdCache<rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 4usize]>>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  16:     0x77398b7f60b9 - rustc_query_impl[d196c070bbe03594]::query_impl::adt_async_destructor::get_query_incr::__rust_end_short_backtrace
  17:     0x773989e1e10a - <rustc_middle[dca19e53efad7b1b]::ty::adt::AdtDef>::async_destructor
  18:     0x77398a6f3606 - rustc_ty_utils[76373251995fa178]::needs_drop::needs_async_drop_raw
  19:     0x77398a24847e - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::needs_async_drop_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 1usize]>>
  20:     0x77398a219803 - <rustc_query_impl[d196c070bbe03594]::query_impl::needs_async_drop_raw::dynamic_query::{closure#2} as core[ce1fa00964895ff1]::ops::function::FnOnce<(rustc_middle[dca19e53efad7b1b]::ty::context::TyCtxt, rustc_middle[dca19e53efad7b1b]::ty::PseudoCanonicalInput<rustc_middle[dca19e53efad7b1b]::ty::Ty>)>>::call_once
  21:     0x77398b0a28fa - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_query_system[ff49814a586d4008]::query::caches::DefaultCache<rustc_middle[dca19e53efad7b1b]::ty::PseudoCanonicalInput<rustc_middle[dca19e53efad7b1b]::ty::Ty>, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  22:     0x77398a2688eb - rustc_query_impl[d196c070bbe03594]::query_impl::needs_async_drop_raw::get_query_incr::__rust_end_short_backtrace
  23:     0x773989eb1b34 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::is_async_drop_impl
  24:     0x77398b1d7dd1 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::pop_scope
  25:     0x77398ba62a2a - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::ast_block_stmts
  26:     0x77398ba61e2a - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::ast_block
  27:     0x77398b206605 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  28:     0x77398b20ad56 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  29:     0x77398b208c0c - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  30:     0x77398b208564 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  31:     0x77398b1f0c24 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::as_temp::{closure#0}
  32:     0x77398b1dfa9c - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_as_place
  33:     0x77398b1e0164 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_as_place
  34:     0x77398ba00bb7 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::lower_scrutinee
  35:     0x77398ba007e2 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::lower_let_expr
  36:     0x77398c0cf3ec - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::then_else_break_inner
  37:     0x77398c0cee2b - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::then_else_break_inner
  38:     0x77398b2091ea - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  39:     0x77398b208c0c - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  40:     0x77398ba63120 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::ast_block_stmts
  41:     0x77398ba61e2a - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::ast_block
  42:     0x77398b206605 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  43:     0x77398b20ad56 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  44:     0x77398b1f0c24 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::as_temp::{closure#0}
  45:     0x77398b42abbb - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::stmt_expr
  46:     0x77398b42adcd - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::stmt_expr
  47:     0x77398ba629ff - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::ast_block_stmts
  48:     0x77398ba61e2a - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::ast_block
  49:     0x77398b206605 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  50:     0x77398b208c0c - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  51:     0x77398b20a98e - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  52:     0x77398b208c0c - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  53:     0x77398ba63120 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::ast_block_stmts
  54:     0x77398ba61e2a - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::ast_block
  55:     0x77398b206605 - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  56:     0x77398b208c0c - <rustc_mir_build[c5b38e827ba5bd28]::builder::Builder>::expr_into_dest
  57:     0x77398b1d2ccf - rustc_mir_build[c5b38e827ba5bd28]::builder::build_mir
  58:     0x77398ae0a035 - rustc_mir_transform[c6aefdac698137fa]::mir_built
  59:     0x77398ae0a007 - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 8usize]>>
  60:     0x77398b1ab91a - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_data_structures[c2151ea158282339]::vec_cache::VecCache<rustc_span[e6282e50b7a97c05]::def_id::LocalDefId, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[ff49814a586d4008]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  61:     0x77398b0ab87f - rustc_query_impl[d196c070bbe03594]::query_impl::mir_built::get_query_incr::__rust_end_short_backtrace
  62:     0x77398ae3192f - rustc_mir_transform[c6aefdac698137fa]::ffi_unwind_calls::has_ffi_unwind_calls
  63:     0x77398ae314d9 - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 1usize]>>
  64:     0x77398b0a87dd - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_data_structures[c2151ea158282339]::vec_cache::VecCache<rustc_span[e6282e50b7a97c05]::def_id::LocalDefId, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[ff49814a586d4008]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  65:     0x77398b0a817a - rustc_query_impl[d196c070bbe03594]::query_impl::has_ffi_unwind_calls::get_query_incr::__rust_end_short_backtrace
  66:     0x77398867ac11 - rustc_mir_transform[c6aefdac698137fa]::mir_promoted
  67:     0x77398b32c9d2 - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 16usize]>>
  68:     0x77398b09d4e7 - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_data_structures[c2151ea158282339]::vec_cache::VecCache<rustc_span[e6282e50b7a97c05]::def_id::LocalDefId, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[ff49814a586d4008]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  69:     0x77398b09cc80 - rustc_query_impl[d196c070bbe03594]::query_impl::mir_promoted::get_query_incr::__rust_end_short_backtrace
  70:     0x77398be5fcc1 - rustc_borrowck[283361fc4b34cd2a]::do_mir_borrowck
  71:     0x77398be5c8fe - <rustc_borrowck[283361fc4b34cd2a]::root_cx::BorrowCheckRootCtxt>::get_or_insert_nested
  72:     0x77398b1a9b6f - rustc_borrowck[283361fc4b34cd2a]::mir_borrowck
  73:     0x77398b1a981f - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 8usize]>>
  74:     0x77398b1ab91a - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_data_structures[c2151ea158282339]::vec_cache::VecCache<rustc_span[e6282e50b7a97c05]::def_id::LocalDefId, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[ff49814a586d4008]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  75:     0x77398b0abc52 - rustc_query_impl[d196c070bbe03594]::query_impl::mir_borrowck::get_query_incr::__rust_end_short_backtrace
  76:     0x77398c07caab - rustc_hir_analysis[e577ebb869d6e7c7]::collect::type_of::opaque::find_opaque_ty_constraints_for_rpit
  77:     0x77398c07c834 - rustc_hir_analysis[e577ebb869d6e7c7]::collect::type_of::type_of_opaque
  78:     0x77398c07c6f7 - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 8usize]>>
  79:     0x77398b0aed3f - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_query_system[ff49814a586d4008]::query::caches::DefIdCache<rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  80:     0x77398c100e8a - rustc_query_impl[d196c070bbe03594]::query_impl::type_of_opaque::get_query_incr::__rust_end_short_backtrace
  81:     0x77398b2411ca - rustc_hir_analysis[e577ebb869d6e7c7]::collect::type_of::type_of
  82:     0x77398b23bb36 - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 8usize]>>
  83:     0x77398b0aed3f - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_query_system[ff49814a586d4008]::query::caches::DefIdCache<rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  84:     0x77398b0aab36 - rustc_query_impl[d196c070bbe03594]::query_impl::type_of::get_query_incr::__rust_end_short_backtrace
  85:     0x77398c07cfd9 - rustc_hir_analysis[e577ebb869d6e7c7]::check::check::check_opaque
  86:     0x77398b2ebfff - rustc_hir_analysis[e577ebb869d6e7c7]::check::check::check_item_type
  87:     0x77398b62c7b7 - rustc_hir_analysis[e577ebb869d6e7c7]::check::wfcheck::check_well_formed
  88:     0x77398b629e4b - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 1usize]>>
  89:     0x77398b0a8b2d - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_data_structures[c2151ea158282339]::vec_cache::VecCache<rustc_span[e6282e50b7a97c05]::def_id::LocalDefId, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[ff49814a586d4008]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  90:     0x77398b0a82b2 - rustc_query_impl[d196c070bbe03594]::query_impl::check_well_formed::get_query_incr::__rust_end_short_backtrace
  91:     0x77398b626b3b - rustc_hir_analysis[e577ebb869d6e7c7]::check::wfcheck::check_mod_type_wf
  92:     0x77398b626595 - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 1usize]>>
  93:     0x77398bde6bb1 - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_query_system[ff49814a586d4008]::query::caches::DefaultCache<rustc_span[e6282e50b7a97c05]::def_id::LocalModDefId, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
  94:     0x77398bde7685 - rustc_query_impl[d196c070bbe03594]::query_impl::check_mod_type_wf::get_query_incr::__rust_end_short_backtrace
  95:     0x77398b1a5ef2 - rustc_hir_analysis[e577ebb869d6e7c7]::check_crate
  96:     0x77398b199237 - rustc_interface[4b2c44076e9c0aea]::passes::run_required_analyses
  97:     0x77398bde8ade - rustc_interface[4b2c44076e9c0aea]::passes::analysis
  98:     0x77398bde8ab5 - rustc_query_impl[d196c070bbe03594]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d196c070bbe03594]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 0usize]>>
  99:     0x77398bde3584 - rustc_query_system[ff49814a586d4008]::query::plumbing::try_execute_query::<rustc_query_impl[d196c070bbe03594]::DynamicConfig<rustc_query_system[ff49814a586d4008]::query::caches::SingleCache<rustc_middle[dca19e53efad7b1b]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[d196c070bbe03594]::plumbing::QueryCtxt, true>
 100:     0x77398bde2ea8 - rustc_query_impl[d196c070bbe03594]::query_impl::analysis::get_query_incr::__rust_end_short_backtrace
 101:     0x77398c034b87 - rustc_interface[4b2c44076e9c0aea]::passes::create_and_enter_global_ctxt::<core[ce1fa00964895ff1]::option::Option<rustc_interface[4b2c44076e9c0aea]::queries::Linker>, rustc_driver_impl[d80da60e87609ad4]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
 102:     0x77398bf0b5a6 - rustc_interface[4b2c44076e9c0aea]::interface::run_compiler::<(), rustc_driver_impl[d80da60e87609ad4]::run_compiler::{closure#0}>::{closure#1}
 103:     0x77398bedad7e - std[e444442488e5ea2d]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[4b2c44076e9c0aea]::util::run_in_thread_with_globals<rustc_interface[4b2c44076e9c0aea]::util::run_in_thread_pool_with_globals<rustc_interface[4b2c44076e9c0aea]::interface::run_compiler<(), rustc_driver_impl[d80da60e87609ad4]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
 104:     0x77398bedb1f4 - <<std[e444442488e5ea2d]::thread::Builder>::spawn_unchecked_<rustc_interface[4b2c44076e9c0aea]::util::run_in_thread_with_globals<rustc_interface[4b2c44076e9c0aea]::util::run_in_thread_pool_with_globals<rustc_interface[4b2c44076e9c0aea]::interface::run_compiler<(), rustc_driver_impl[d80da60e87609ad4]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[ce1fa00964895ff1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
 105:     0x77398bedc5eb - std::sys::pal::unix::thread::Thread::new::thread_start::h8985427f793e6fe1
 106:     0x773985ca57eb - <unknown>
 107:     0x773985d2918c - <unknown>
 108:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml

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

note: please attach the file at `/home/sherlock/git/user_stack_tests/rustc-ice-2025-05-09T15_58_52-637216.txt` to your bug report

note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2 -C linker=clang -C incremental=[REDACTED] -C link-arg=-fuse-ld=mold -C target_cpu=x86-64-v2

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

query stack during panic:
#0 [adt_async_destructor] computing `AsyncDrop` impl for `user_stack::tcp::TcpStream`
#1 [needs_async_drop_raw] computing whether `core::task::poll::Poll<core::option::Option<user_stack::tcp::TcpStream<CompioRuntime>>>` needs async drop
... and 9 other queries... use `env RUST_BACKTRACE=1` to see the full query stack
note: Clippy version: clippy 0.1.88 (50aa041807 2025-05-08)

error: could not compile `user_stack_tests` (lib)

Caused by:
  process didn't exit successfully: `/home/sherlock/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/clippy-driver /home/sherlock/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc --crate-name user_stack_tests --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=145 --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=3a6711b9f7eff165 -C extra-filename=-66fcce6876169693 --out-dir /home/sherlock/git/user_stack_tests/target/debug/deps -C linker=clang -C incremental=/home/sherlock/git/user_stack_tests/target/debug/incremental -L dependency=/home/sherlock/git/user_stack_tests/target/debug/deps --extern bytes=/home/sherlock/git/user_stack_tests/target/debug/deps/libbytes-92e724eac1bcf0ce.rmeta --extern compio=/home/sherlock/git/user_stack_tests/target/debug/deps/libcompio-bd57dee5af941ab9.rmeta --extern futures_util=/home/sherlock/git/user_stack_tests/target/debug/deps/libfutures_util-d306a4b6994ef2bf.rmeta --extern libc=/home/sherlock/git/user_stack_tests/target/debug/deps/liblibc-de4d3989bdb8bc31.rmeta --extern rustix=/home/sherlock/git/user_stack_tests/target/debug/deps/librustix-20d7fc6df9387815.rmeta --extern user_stack=/home/sherlock/git/user_stack_tests/target/debug/deps/libuser_stack-412f67aaa4efeed7.rmeta -C link-arg=-fuse-ld=mold -C target_cpu=x86-64-v2` (exit status: 101)
Backtrace

thread 'rustc' panicked at /rustc/50aa04180709189a03dde5fd1c05751b2625ed37/compiler/rustc_span/src/def_id.rs:393:26:
DefId::expect_local: `DefId(56:141 ~ user_stack[92be]::tcp::{impl#3})` isn't local
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: <rustc_span::def_id::LocalDefId as rustc_serialize::serialize::Decodable<rustc_metadata::rmeta::decoder::DecodeContext>>::decode
   3: rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::adt_async_destructor
      [... omitted 1 frame ...]
   4: <rustc_middle::ty::adt::AdtDef>::async_destructor
   5: rustc_ty_utils::needs_drop::needs_async_drop_raw
      [... omitted 2 frames ...]
   6: <rustc_mir_build::builder::Builder>::is_async_drop_impl
   7: <rustc_mir_build::builder::Builder>::pop_scope
   8: <rustc_mir_build::builder::Builder>::ast_block_stmts
   9: <rustc_mir_build::builder::Builder>::ast_block
  10: <rustc_mir_build::builder::Builder>::expr_into_dest
  11: <rustc_mir_build::builder::Builder>::expr_into_dest
  12: <rustc_mir_build::builder::Builder>::expr_into_dest
  13: <rustc_mir_build::builder::Builder>::expr_into_dest
  14: <rustc_mir_build::builder::Builder>::as_temp::{closure#0}
  15: <rustc_mir_build::builder::Builder>::expr_as_place
  16: <rustc_mir_build::builder::Builder>::expr_as_place
  17: <rustc_mir_build::builder::Builder>::lower_scrutinee
  18: <rustc_mir_build::builder::Builder>::lower_let_expr
  19: <rustc_mir_build::builder::Builder>::then_else_break_inner
  20: <rustc_mir_build::builder::Builder>::then_else_break_inner
  21: <rustc_mir_build::builder::Builder>::expr_into_dest
  22: <rustc_mir_build::builder::Builder>::expr_into_dest
  23: <rustc_mir_build::builder::Builder>::ast_block_stmts
  24: <rustc_mir_build::builder::Builder>::ast_block
  25: <rustc_mir_build::builder::Builder>::expr_into_dest
  26: <rustc_mir_build::builder::Builder>::expr_into_dest
  27: <rustc_mir_build::builder::Builder>::as_temp::{closure#0}
  28: <rustc_mir_build::builder::Builder>::stmt_expr
  29: <rustc_mir_build::builder::Builder>::stmt_expr
  30: <rustc_mir_build::builder::Builder>::ast_block_stmts
  31: <rustc_mir_build::builder::Builder>::ast_block
  32: <rustc_mir_build::builder::Builder>::expr_into_dest
  33: <rustc_mir_build::builder::Builder>::expr_into_dest
  34: <rustc_mir_build::builder::Builder>::expr_into_dest
  35: <rustc_mir_build::builder::Builder>::expr_into_dest
  36: <rustc_mir_build::builder::Builder>::ast_block_stmts
  37: <rustc_mir_build::builder::Builder>::ast_block
  38: <rustc_mir_build::builder::Builder>::expr_into_dest
  39: <rustc_mir_build::builder::Builder>::expr_into_dest
  40: rustc_mir_build::builder::build_mir
  41: rustc_mir_transform::mir_built
      [... omitted 1 frame ...]
  42: rustc_mir_transform::ffi_unwind_calls::has_ffi_unwind_calls
      [... omitted 1 frame ...]
  43: rustc_mir_transform::mir_promoted
      [... omitted 1 frame ...]
  44: rustc_borrowck::do_mir_borrowck
  45: <rustc_borrowck::root_cx::BorrowCheckRootCtxt>::get_or_insert_nested
  46: rustc_borrowck::mir_borrowck
      [... omitted 1 frame ...]
  47: rustc_hir_analysis::collect::type_of::opaque::find_opaque_ty_constraints_for_rpit
  48: rustc_hir_analysis::collect::type_of::type_of_opaque
      [... omitted 1 frame ...]
  49: rustc_hir_analysis::collect::type_of::type_of
      [... omitted 1 frame ...]
  50: rustc_hir_analysis::check::check::check_opaque
  51: rustc_hir_analysis::check::check::check_item_type
  52: rustc_hir_analysis::check::wfcheck::check_well_formed
      [... omitted 1 frame ...]
  53: rustc_hir_analysis::check::wfcheck::check_mod_type_wf
      [... omitted 1 frame ...]
  54: rustc_hir_analysis::check_crate
  55: rustc_interface::passes::run_required_analyses
  56: rustc_interface::passes::analysis
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml

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

note: please attach the file at `/home/sherlock/git/user_stack_tests/rustc-ice-2025-05-09T15_59_33-638263.txt` to your bug report

note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2 -C linker=clang -C incremental=[REDACTED] -C link-arg=-fuse-ld=mold -C target_cpu=x86-64-v2

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

query stack during panic:
#0 [adt_async_destructor] computing `AsyncDrop` impl for `user_stack::tcp::TcpStream`
#1 [needs_async_drop_raw] computing whether `core::task::poll::Poll<core::option::Option<user_stack::tcp::TcpStream<CompioRuntime>>>` needs async drop
#2 [mir_built] building MIR for `run::{closure#0}`
#3 [has_ffi_unwind_calls] checking if `run::{closure#0}` contains FFI-unwind calls
#4 [mir_promoted] promoting constants in MIR for `run::{closure#0}`
#5 [mir_borrowck] borrow-checking `run`
#6 [type_of_opaque] computing type of opaque `run::{opaque#0}`
#7 [type_of] computing type of `run::{opaque#0}`
#8 [check_well_formed] checking that `run::{opaque#0}` is well-formed
#9 [check_mod_type_wf] checking that types are well-formed in top-level module
#10 [analysis] running analysis passes on this crate
end of query stack
note: Clippy version: clippy 0.1.88 (50aa041807 2025-05-08)

error: could not compile `user_stack_tests` (lib)

Caused by:
  process didn't exit successfully: `/home/sherlock/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/clippy-driver /home/sherlock/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc --crate-name user_stack_tests --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=145 --crate-type lib --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=3a6711b9f7eff165 -C extra-filename=-66fcce6876169693 --out-dir /home/sherlock/git/user_stack_tests/target/debug/deps -C linker=clang -C incremental=/home/sherlock/git/user_stack_tests/target/debug/incremental -L dependency=/home/sherlock/git/user_stack_tests/target/debug/deps --extern bytes=/home/sherlock/git/user_stack_tests/target/debug/deps/libbytes-92e724eac1bcf0ce.rmeta --extern compio=/home/sherlock/git/user_stack_tests/target/debug/deps/libcompio-bd57dee5af941ab9.rmeta --extern futures_util=/home/sherlock/git/user_stack_tests/target/debug/deps/libfutures_util-d306a4b6994ef2bf.rmeta --extern libc=/home/sherlock/git/user_stack_tests/target/debug/deps/liblibc-de4d3989bdb8bc31.rmeta --extern rustix=/home/sherlock/git/user_stack_tests/target/debug/deps/librustix-20d7fc6df9387815.rmeta --extern user_stack=/home/sherlock/git/user_stack_tests/target/debug/deps/libuser_stack-412f67aaa4efeed7.rmeta -C link-arg=-fuse-ld=mold -C target_cpu=x86-64-v2` (exit status: 101)

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.F-async_drop`#![feature(async_drop)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.requires-incomplete-featuresThis issue requires the use of incomplete features.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions