Skip to content

Async closure internal compiler error #123650

Closed
@0xAda

Description

@0xAda

Code

#![feature(async_closure)]

use std::future::Future;
use std::path::{PathBuf};

pub struct TokioOnceCell<T> {
    _a: T
}

impl<T> TokioOnceCell<T> {
    pub async fn get_or_init<F, Fut>(&self, f: F) -> &T
        where
            F: FnOnce() -> Fut,
            Fut: Future<Output = T>,
    {
        loop {}
    }
}

pub struct Struct {
    pub path: PathBuf,
    items: TokioOnceCell<Vec<()>>,
}

impl Struct {
    pub async fn get_items(&self) -> &Vec<()> {
        self.items
            .get_or_init(async move || load_items_from_path(self.path.clone()).await)
            .await
    }
}

async fn load_items_from_path(base_dir: PathBuf) -> Vec<()> {
    loop {}
}

Meta

rustc --version --verbose:

binary: rustc
commit-hash: 9d5cdf75aa42faaf0b58ba21a510117e8d0051a3
commit-date: 2024-04-07
host: x86_64-unknown-linux-gnu
release: 1.79.0-nightly
LLVM version: 18.1.3

Error output

error: internal compiler error: {OpaqueTypeKey { def_id: DefId(0:29 ~ ice4[8851]::{impl#1}::get_items::{opaque#0}), args: ['?5] }: OpaqueTypeDecl { hidden_type: OpaqueHiddenType { span: src/lib.rs:26:47: 30:6 (#0), ty: Coroutine(DefId(0:20 ~ ice4[8851]::{impl#1}::get_items::{closure#0}), [(), std::future::ResumeTy, (), &'?3 std::vec::Vec<(), std::alloc::Global>, CoroutineWitness(DefId(0:20 ~ ice4[8851]::{impl#1}::get_items::{closure#0}), []), (&'?4 Struct,)]) } }}
  |
  = note: delayed at compiler/rustc_infer/src/infer/opaque_types/table.rs:43:43
Backtrace

thread 'rustc' panicked at compiler/rustc_mir_transform/src/coroutine/by_move_body.rs:144:13:
assertion `left == right` failed
  left: Struct
 right: &'{erased} Struct
stack backtrace:
   0:     0x7f71b1dbcad5 - std::backtrace_rs::backtrace::libunwind::trace::hc79cced6f418596d
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x7f71b1dbcad5 - std::backtrace_rs::backtrace::trace_unsynchronized::h68f1e861fa210a58
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f71b1dbcad5 - std::backtrace::Backtrace::create::h16f1a813b82e7a39
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/backtrace.rs:331:13
   3:     0x7f71b1dbca25 - std::backtrace::Backtrace::force_capture::hdc8efa958b743668
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/backtrace.rs:312:9
   4:     0x7f71ae680172 - std[2c420855e262d42e]::panicking::update_hook::<alloc[56e68475af91072d]::boxed::Box<rustc_driver_impl[10b0a2e726609308]::install_ice_hook::{closure#0}>>::{closure#0}
   5:     0x7f71b1dd785c - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h2fe2a6e53d9884ad
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/alloc/src/boxed.rs:2032:9
   6:     0x7f71b1dd785c - std::panicking::rust_panic_with_hook::ha4f8caa112a16574
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/panicking.rs:792:13
   7:     0x7f71b1dd7606 - std::panicking::begin_panic_handler::{{closure}}::hc879855deab44ed0
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/panicking.rs:657:13
   8:     0x7f71b1dd4d49 - std::sys_common::backtrace::__rust_end_short_backtrace::h85e59f289fdfff6c
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/sys_common/backtrace.rs:171:18
   9:     0x7f71b1dd7337 - rust_begin_unwind
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/panicking.rs:645:5
  10:     0x7f71b1e1ffe6 - core::panicking::panic_fmt::h0baef2c59e253f8d
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/core/src/panicking.rs:72:14
  11:     0x7f71b1e204de - core::panicking::assert_failed_inner::hc4a830528f707359
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/core/src/panicking.rs:402:17
  12:     0x7f71aec63dc3 - core[a43033d72a2ad972]::panicking::assert_failed::<rustc_middle[ee9fd2d26a5334a8]::ty::Ty, rustc_middle[ee9fd2d26a5334a8]::ty::Ty>
  13:     0x7f71ad5d63b7 - <rustc_mir_transform[62a0cb25b43c0f4c]::coroutine::by_move_body::ByMoveBody as rustc_middle[ee9fd2d26a5334a8]::mir::MirPass>::run_pass
  14:     0x7f71afa0188d - rustc_mir_transform[62a0cb25b43c0f4c]::pass_manager::run_passes_inner
  15:     0x7f71afcefc2b - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>
  16:     0x7f71afcc8efc - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  17:     0x7f71afd58680 - rustc_query_impl[6af0969354d63311]::query_impl::mir_built::get_query_incr::__rust_end_short_backtrace
  18:     0x7f71b006c4f4 - rustc_mir_transform[62a0cb25b43c0f4c]::ffi_unwind_calls::has_ffi_unwind_calls
  19:     0x7f71b006bfa1 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 1usize]>>
  20:     0x7f71afd4c338 - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  21:     0x7f71afd4b577 - rustc_query_impl[6af0969354d63311]::query_impl::has_ffi_unwind_calls::get_query_incr::__rust_end_short_backtrace
  22:     0x7f71ad5df11b - rustc_mir_transform[62a0cb25b43c0f4c]::mir_promoted
  23:     0x7f71afd72062 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 16usize]>>
  24:     0x7f71afd6f40f - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  25:     0x7f71afd6ea56 - rustc_query_impl[6af0969354d63311]::query_impl::mir_promoted::get_query_incr::__rust_end_short_backtrace
  26:     0x7f71afcc4288 - rustc_borrowck[165fe623694ebd1]::mir_borrowck
  27:     0x7f71afcc41d7 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>
  28:     0x7f71afcc8efc - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  29:     0x7f71afd58a68 - rustc_query_impl[6af0969354d63311]::query_impl::mir_borrowck::get_query_incr::__rust_end_short_backtrace
  30:     0x7f71afffe282 - rustc_middle[ee9fd2d26a5334a8]::query::plumbing::query_get_at::<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>>
  31:     0x7f71afffe2e0 - <rustc_borrowck[165fe623694ebd1]::type_check::TypeChecker>::prove_closure_bounds
  32:     0x7f71affb2c49 - <rustc_borrowck[165fe623694ebd1]::type_check::TypeChecker>::typeck_mir
  33:     0x7f71acf58823 - rustc_borrowck[165fe623694ebd1]::type_check::type_check
  34:     0x7f71ad1477e2 - rustc_borrowck[165fe623694ebd1]::nll::compute_regions
  35:     0x7f71b0a420fa - rustc_borrowck[165fe623694ebd1]::do_mir_borrowck
  36:     0x7f71afcc46e0 - rustc_borrowck[165fe623694ebd1]::mir_borrowck
  37:     0x7f71afcc41d7 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>
  38:     0x7f71afcc8efc - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  39:     0x7f71afd58a68 - rustc_query_impl[6af0969354d63311]::query_impl::mir_borrowck::get_query_incr::__rust_end_short_backtrace
  40:     0x7f71afffe282 - rustc_middle[ee9fd2d26a5334a8]::query::plumbing::query_get_at::<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>>
  41:     0x7f71afffe2e0 - <rustc_borrowck[165fe623694ebd1]::type_check::TypeChecker>::prove_closure_bounds
  42:     0x7f71affb2c49 - <rustc_borrowck[165fe623694ebd1]::type_check::TypeChecker>::typeck_mir
  43:     0x7f71acf58823 - rustc_borrowck[165fe623694ebd1]::type_check::type_check
  44:     0x7f71ad1477e2 - rustc_borrowck[165fe623694ebd1]::nll::compute_regions
  45:     0x7f71b0a420fa - rustc_borrowck[165fe623694ebd1]::do_mir_borrowck
  46:     0x7f71afcc46e0 - rustc_borrowck[165fe623694ebd1]::mir_borrowck
  47:     0x7f71afcc41d7 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>
  48:     0x7f71afcc8efc - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  49:     0x7f71afd58a68 - rustc_query_impl[6af0969354d63311]::query_impl::mir_borrowck::get_query_incr::__rust_end_short_backtrace
  50:     0x7f71afffe282 - rustc_middle[ee9fd2d26a5334a8]::query::plumbing::query_get_at::<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>>
  51:     0x7f71afffe2e0 - <rustc_borrowck[165fe623694ebd1]::type_check::TypeChecker>::prove_closure_bounds
  52:     0x7f71affb2c49 - <rustc_borrowck[165fe623694ebd1]::type_check::TypeChecker>::typeck_mir
  53:     0x7f71acf58823 - rustc_borrowck[165fe623694ebd1]::type_check::type_check
  54:     0x7f71ad1477e2 - rustc_borrowck[165fe623694ebd1]::nll::compute_regions
  55:     0x7f71b0a420fa - rustc_borrowck[165fe623694ebd1]::do_mir_borrowck
  56:     0x7f71afcc46e0 - rustc_borrowck[165fe623694ebd1]::mir_borrowck
  57:     0x7f71afcc41d7 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>
  58:     0x7f71afcc8efc - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  59:     0x7f71afd58a68 - rustc_query_impl[6af0969354d63311]::query_impl::mir_borrowck::get_query_incr::__rust_end_short_backtrace
  60:     0x7f71b03f7448 - rustc_middle[ee9fd2d26a5334a8]::query::plumbing::query_get_at::<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_span[7eb36910801e3e4c]::def_id::LocalDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>>
  61:     0x7f71b07dfa85 - rustc_hir_analysis[54b07c1b27764dc0]::collect::type_of::type_of_opaque
  62:     0x7f71b07df915 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>
  63:     0x7f71afd5d28b - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::DefIdCache<rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  64:     0x7f71b0a24c07 - rustc_query_impl[6af0969354d63311]::query_impl::type_of_opaque::get_query_incr::__rust_end_short_backtrace
  65:     0x7f71b03fa5be - rustc_middle[ee9fd2d26a5334a8]::query::plumbing::query_get_at::<rustc_query_system[edbdf8181850661d]::query::caches::DefIdCache<rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>>
  66:     0x7f71ad7d114e - rustc_hir_analysis[54b07c1b27764dc0]::collect::type_of::type_of
  67:     0x7f71afaf8822 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>
  68:     0x7f71afd5d28b - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::DefIdCache<rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  69:     0x7f71afd5ad99 - rustc_query_impl[6af0969354d63311]::query_impl::type_of::get_query_incr::__rust_end_short_backtrace
  70:     0x7f71b03fa5be - rustc_middle[ee9fd2d26a5334a8]::query::plumbing::query_get_at::<rustc_query_system[edbdf8181850661d]::query::caches::DefIdCache<rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 8usize]>>>
  71:     0x7f71b09be811 - rustc_hir_analysis[54b07c1b27764dc0]::check::check::check_item_type
  72:     0x7f71aff4276a - rustc_hir_analysis[54b07c1b27764dc0]::check::wfcheck::check_well_formed
  73:     0x7f71aff40fb3 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 1usize]>>
  74:     0x7f71aff3bbfc - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::VecCache<rustc_hir[a61e9bbb0e1d39e7]::hir_id::OwnerId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  75:     0x7f71aff3b709 - rustc_query_impl[6af0969354d63311]::query_impl::check_well_formed::get_query_incr::__rust_end_short_backtrace
  76:     0x7f71aff3e413 - rustc_hir_analysis[54b07c1b27764dc0]::check::wfcheck::check_mod_type_wf
  77:     0x7f71aff3e25b - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 1usize]>>
  78:     0x7f71b04b5242 - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::DefaultCache<rustc_span[7eb36910801e3e4c]::def_id::LocalModDefId, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  79:     0x7f71b04b5ed6 - rustc_query_impl[6af0969354d63311]::query_impl::check_mod_type_wf::get_query_incr::__rust_end_short_backtrace
  80:     0x7f71afcc074f - rustc_hir_analysis[54b07c1b27764dc0]::check_crate
  81:     0x7f71afcd45ea - rustc_interface[dbc083dc91b33e67]::passes::analysis
  82:     0x7f71afcd4147 - rustc_query_impl[6af0969354d63311]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[6af0969354d63311]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 1usize]>>
  83:     0x7f71b095934a - rustc_query_system[edbdf8181850661d]::query::plumbing::try_execute_query::<rustc_query_impl[6af0969354d63311]::DynamicConfig<rustc_query_system[edbdf8181850661d]::query::caches::SingleCache<rustc_middle[ee9fd2d26a5334a8]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[6af0969354d63311]::plumbing::QueryCtxt, true>
  84:     0x7f71b0958f5c - rustc_query_impl[6af0969354d63311]::query_impl::analysis::get_query_incr::__rust_end_short_backtrace
  85:     0x7f71b05c8ed4 - rustc_interface[dbc083dc91b33e67]::interface::run_compiler::<core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>, rustc_driver_impl[10b0a2e726609308]::run_compiler::{closure#0}>::{closure#0}
  86:     0x7f71b079527f - std[2c420855e262d42e]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[dbc083dc91b33e67]::util::run_in_thread_with_globals<rustc_interface[dbc083dc91b33e67]::util::run_in_thread_pool_with_globals<rustc_interface[dbc083dc91b33e67]::interface::run_compiler<core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>, rustc_driver_impl[10b0a2e726609308]::run_compiler::{closure#0}>::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>
  87:     0x7f71b0795070 - <<std[2c420855e262d42e]::thread::Builder>::spawn_unchecked_<rustc_interface[dbc083dc91b33e67]::util::run_in_thread_with_globals<rustc_interface[dbc083dc91b33e67]::util::run_in_thread_pool_with_globals<rustc_interface[dbc083dc91b33e67]::interface::run_compiler<core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>, rustc_driver_impl[10b0a2e726609308]::run_compiler::{closure#0}>::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#1} as core[a43033d72a2ad972]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  88:     0x7f71b1de128b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5cf039e566d31df2
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/alloc/src/boxed.rs:2018:9
  89:     0x7f71b1de128b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5b8a7e7667fbf80b
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/alloc/src/boxed.rs:2018:9
  90:     0x7f71b1de128b - std::sys::pal::unix::thread::Thread::new::thread_start::h47ad6cb551091e6a
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/sys/pal/unix/thread.rs:108:17
  91:     0x7f71b1b9d897 - start_thread
  92:     0x7f71b1c24a5c - __clone3
  93:                0x0 - <unknown>


rustc version: 1.79.0-nightly (9d5cdf75a 2024-04-07)
platform: x86_64-unknown-linux-gnu

query stack during panic:
#0 [mir_built] building MIR for `<impl at src/lib.rs:25:1: 25:12>::get_items::{closure#0}::{closure#0}::{closure#0}`
#1 [has_ffi_unwind_calls] checking if `<impl at src/lib.rs:25:1: 25:12>::get_items::{closure#0}::{closure#0}::{closure#0}` contains FFI-unwind calls
#2 [mir_promoted] promoting constants in MIR for `<impl at src/lib.rs:25:1: 25:12>::get_items::{closure#0}::{closure#0}::{closure#0}`
#3 [mir_borrowck] borrow-checking `<impl at src/lib.rs:25:1: 25:12>::get_items::{closure#0}::{closure#0}::{closure#0}`
#4 [mir_borrowck] borrow-checking `<impl at src/lib.rs:25:1: 25:12>::get_items::{closure#0}::{closure#0}`
#5 [mir_borrowck] borrow-checking `<impl at src/lib.rs:25:1: 25:12>::get_items::{closure#0}`
#6 [mir_borrowck] borrow-checking `<impl at src/lib.rs:25:1: 25:12>::get_items`
#7 [type_of_opaque] computing type of opaque `<impl at src/lib.rs:25:1: 25:12>::get_items::{opaque#0}`
#8 [type_of] computing type of `<impl at src/lib.rs:25:1: 25:12>::get_items::{opaque#0}`
#9 [check_well_formed] checking that `<impl at src/lib.rs:25:1: 25:12>::get_items::{opaque#0}` is well-formed
#10 [check_mod_type_wf] checking that types are well-formed in top-level module
#11 [analysis] running analysis passes on this crate
end of query stack
delayed bug: {OpaqueTypeKey { def_id: DefId(0:29 ~ ice4[8851]::{impl#1}::get_items::{opaque#0}), args: ['?5] }: OpaqueTypeDecl { hidden_type: OpaqueHiddenType { span: src/lib.rs:26:47: 30:6 (#0), ty: Coroutine(DefId(0:20 ~ ice4[8851]::{impl#1}::get_items::{closure#0}), [(), std::future::ResumeTy, (), &'?3 std::vec::Vec<(), std::alloc::Global>, CoroutineWitness(DefId(0:20 ~ ice4[8851]::{impl#1}::get_items::{closure#0}), []), (&'?4 Struct,)]) } }}
   0: <rustc_errors::DiagCtxtInner>::emit_diagnostic
   1: <rustc_errors::DiagCtxt>::emit_diagnostic
   2: <rustc_span::ErrorGuaranteed as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
   3: core::ptr::drop_in_place::<rustc_infer::infer::InferCtxt>
   4: rustc_borrowck::mir_borrowck
   5: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
   6: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
   7: rustc_query_impl::query_impl::mir_borrowck::get_query_incr::__rust_end_short_backtrace
   8: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>>
   9: rustc_hir_analysis::collect::type_of::type_of_opaque
  10: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
  11: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
  12: rustc_query_impl::query_impl::type_of_opaque::get_query_incr::__rust_end_short_backtrace
  13: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>>
  14: rustc_hir_analysis::collect::type_of::type_of
  15: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
  16: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
  17: rustc_query_impl::query_impl::type_of::get_query_incr::__rust_end_short_backtrace
  18: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>>
  19: rustc_hir_analysis::check::check::check_item_type
  20: rustc_hir_analysis::check::wfcheck::check_well_formed
  21: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
  22: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_hir::hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
  23: rustc_query_impl::query_impl::check_well_formed::get_query_incr::__rust_end_short_backtrace
  24: rustc_hir_analysis::check::wfcheck::check_mod_type_wf
  25: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
  26: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::LocalModDefId, rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
  27: rustc_query_impl::query_impl::check_mod_type_wf::get_query_incr::__rust_end_short_backtrace
  28: rustc_hir_analysis::check_crate
  29: rustc_interface::passes::analysis
  30: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
  31: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, true>
  32: rustc_query_impl::query_impl::analysis::get_query_incr::__rust_end_short_backtrace
  33: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}
  34: std::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
  35: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  36: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/alloc/src/boxed.rs:2018:9
  37: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/alloc/src/boxed.rs:2018:9
  38: std::sys::pal::unix::thread::Thread::new::thread_start
             at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/sys/pal/unix/thread.rs:108:17
  39: start_thread
  40: __clone3

thread 'rustc' panicked at library/core/src/panicking.rs:223:5:
panic in a destructor during cleanup
stack backtrace:
   0:     0x7f71b1dbcad5 - std::backtrace_rs::backtrace::libunwind::trace::hc79cced6f418596d
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x7f71b1dbcad5 - std::backtrace_rs::backtrace::trace_unsynchronized::h68f1e861fa210a58
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f71b1dbcad5 - std::backtrace::Backtrace::create::h16f1a813b82e7a39
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/backtrace.rs:331:13
   3:     0x7f71b1dbca25 - std::backtrace::Backtrace::force_capture::hdc8efa958b743668
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/backtrace.rs:312:9
   4:     0x7f71ae680172 - std[2c420855e262d42e]::panicking::update_hook::<alloc[56e68475af91072d]::boxed::Box<rustc_driver_impl[10b0a2e726609308]::install_ice_hook::{closure#0}>>::{closure#0}
   5:     0x7f71b1dd785c - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h2fe2a6e53d9884ad
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/alloc/src/boxed.rs:2032:9
   6:     0x7f71b1dd785c - std::panicking::rust_panic_with_hook::ha4f8caa112a16574
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/panicking.rs:792:13
   7:     0x7f71b1dd75cd - std::panicking::begin_panic_handler::{{closure}}::hc879855deab44ed0
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/panicking.rs:649:13
   8:     0x7f71b1dd4d49 - std::sys_common::backtrace::__rust_end_short_backtrace::h85e59f289fdfff6c
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/sys_common/backtrace.rs:171:18
   9:     0x7f71b1dd7337 - rust_begin_unwind
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/panicking.rs:645:5
  10:     0x7f71b1e20043 - core::panicking::panic_nounwind_fmt::runtime::hf38606732a42c872
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/core/src/panicking.rs:110:18
  11:     0x7f71b1e20043 - core::panicking::panic_nounwind_fmt::h4d42cd662a8b5052
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/core/src/panicking.rs:120:5
  12:     0x7f71b1e20128 - core::panicking::panic_nounwind_nobacktrace::hba8a01dd8267361f
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/core/src/panicking.rs:223:5
  13:     0x7f71b1e20326 - core::panicking::panic_in_cleanup::ha492f367a06ed134
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/core/src/panicking.rs:316:5
  14:     0x7f71b05caa44 - rustc_interface[dbc083dc91b33e67]::interface::run_compiler::<core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>, rustc_driver_impl[10b0a2e726609308]::run_compiler::{closure#0}>::{closure#0}
  15:     0x7f71b079527f - std[2c420855e262d42e]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[dbc083dc91b33e67]::util::run_in_thread_with_globals<rustc_interface[dbc083dc91b33e67]::util::run_in_thread_pool_with_globals<rustc_interface[dbc083dc91b33e67]::interface::run_compiler<core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>, rustc_driver_impl[10b0a2e726609308]::run_compiler::{closure#0}>::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>
  16:     0x7f71b0795070 - <<std[2c420855e262d42e]::thread::Builder>::spawn_unchecked_<rustc_interface[dbc083dc91b33e67]::util::run_in_thread_with_globals<rustc_interface[dbc083dc91b33e67]::util::run_in_thread_pool_with_globals<rustc_interface[dbc083dc91b33e67]::interface::run_compiler<core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>, rustc_driver_impl[10b0a2e726609308]::run_compiler::{closure#0}>::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[a43033d72a2ad972]::result::Result<(), rustc_span[7eb36910801e3e4c]::ErrorGuaranteed>>::{closure#1} as core[a43033d72a2ad972]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  17:     0x7f71b1de128b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5cf039e566d31df2
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/alloc/src/boxed.rs:2018:9
  18:     0x7f71b1de128b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5b8a7e7667fbf80b
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/alloc/src/boxed.rs:2018:9
  19:     0x7f71b1de128b - std::sys::pal::unix::thread::Thread::new::thread_start::h47ad6cb551091e6a
                               at /rustc/9d5cdf75aa42faaf0b58ba21a510117e8d0051a3/library/std/src/sys/pal/unix/thread.rs:108:17
  20:     0x7f71b1b9d897 - start_thread
  21:     0x7f71b1c24a5c - __clone3
  22:                0x0 - <unknown>

Metadata

Metadata

Labels

A-async-closures`async || {}`C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions