Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICE: compiler/rustc_mir_transform/src/coroutine/by_move_body.rs: assertion failed: i32 != &'{erased} mut i32 #123420

Closed
matthiaskrgr opened this issue Apr 3, 2024 · 1 comment
Assignees
Labels
A-edition-2021 Area: The 2021 edition C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ S-has-mcve Status: A Minimal Complete and Verifiable Example has been found for this issue T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

matthiaskrgr commented Apr 3, 2024

auto-reduced (treereduce-rust):

use std::future::Future;

pub fn async_closure_explicit_return_type(x: &mut i32) -> impl Future {
    (async move || -> &i32 {
        let y = &*x;
        *x += 1;
        y
    })()
}
original code

original:

//@ edition:2018
#![feature(async_closure)]
use std::future::Future;

// test the quality of annotations giving lifetimes names (`'1`) when async constructs are involved

pub async fn async_fn(x: &mut i32) -> &i32 {
    let y = &*x;
    *x += 1; //~ ERROR cannot assign to `*x` because it is borrowed
    y
}

pub fn async_closure(x: &mut i32) -> impl Future<Output=&i32> {
    (async move || {
        //~^ ERROR lifetime may not live long enough
        //~| ERROR temporary value dropped while borrowed
        let y = &*x;
        *x += 1; //~ ERROR cannot assign to `*x` because it is borrowed
        y
    })()
}

pub fn async_closure_explicit_return_type(x: &mut i32) -> impl Future<Output=&i32> {
    (async move || -> &i32 {
        //~^ ERROR lifetime may not live long enough
        //~| ERROR temporary value dropped while borrowed
        let y = &*x;
        *x += 1; //~ ERROR cannot assign to `*x` because it is borrowed
        y
    })()
}

pub fn async_block(x: &mut i32) -> impl Future<Output=&i32> {
    async move {
        let y = &*x;
        *x += 1; //~ ERROR cannot assign to `*x` because it is borrowed
        y
    }
}

fn main() {}

Version information

rustc 1.79.0-nightly (ceab6128f 2024-04-03)
binary: rustc
commit-hash: ceab6128fa48a616bfd3e3adf4bc80133b8ee223
commit-date: 2024-04-03
host: x86_64-unknown-linux-gnu
release: 1.79.0-nightly
LLVM version: 18.1.2

Command:
~/.rustup/toolchains/master/bin/rustc --edition=2021

Program output

error[E0658]: async closures are unstable
 --> /run/user/1085/tmp/dir.5rimT5Phzi6Y/rustc_testrunner_tmpdir_reporting.ujFwtCUisTnw/mvce.rs:4:6
  |
4 |     (async move || -> &i32 {
  |      ^^^^^
  |
  = note: see issue #62290 <https://github.com/rust-lang/rust/issues/62290> for more information
  = help: add `#![feature(async_closure)]` to the crate attributes to enable
  = note: this compiler was built on 2024-04-03; consider upgrading it if it is out of date
  = help: to use an async block, remove the `||`: `async {`

error[E0601]: `main` function not found in crate `mvce`
 --> /run/user/1085/tmp/dir.5rimT5Phzi6Y/rustc_testrunner_tmpdir_reporting.ujFwtCUisTnw/mvce.rs:9:2
  |
9 | }
  |  ^ consider adding a `main` function to `/run/user/1085/tmp/dir.5rimT5Phzi6Y/rustc_testrunner_tmpdir_reporting.ujFwtCUisTnw/mvce.rs`

thread 'rustc' panicked at compiler/rustc_mir_transform/src/coroutine/by_move_body.rs:136:13:
assertion `left == right` failed
  left: i32
 right: &'{erased} mut i32
stack backtrace:
   0:     0x7f48ce18cab5 - std::backtrace_rs::backtrace::libunwind::trace::he59ed1f6310a89db
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x7f48ce18cab5 - std::backtrace_rs::backtrace::trace_unsynchronized::h6df48fc4d4dfcd06
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f48ce18cab5 - std::sys_common::backtrace::_print_fmt::h913519b97242ff76
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7f48ce18cab5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h13de4b2243b3529a
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7f48ce1dbd0b - core::fmt::rt::Argument::fmt::h38359000df222df5
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/core/src/fmt/rt.rs:142:9
   5:     0x7f48ce1dbd0b - core::fmt::write::h09792d099db8c4ce
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/core/src/fmt/mod.rs:1153:17
   6:     0x7f48ce18169f - std::io::Write::write_fmt::h42e7b681a9beaf4e
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/io/mod.rs:1843:15
   7:     0x7f48ce18c88e - std::sys_common::backtrace::_print::h70f8b37b4f167097
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7f48ce18c88e - std::sys_common::backtrace::print::h27748824a837f210
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7f48ce18f2d9 - std::panicking::default_hook::{{closure}}::hc8fd06074a6fbb63
  10:     0x7f48ce18f043 - std::panicking::default_hook::ha4bd1ecab3ae33e7
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/panicking.rs:291:9
  11:     0x7f48d11fa9cf - std[ec819ecd34fca12]::panicking::update_hook::<alloc[56bab9db32d48932]::boxed::Box<rustc_driver_impl[813d23a455cd902c]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7f48ce18f9dc - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hddd7415eba2a98b4
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/alloc/src/boxed.rs:2032:9
  13:     0x7f48ce18f9dc - std::panicking::rust_panic_with_hook::h087fd27556b6edb6
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/panicking.rs:792:13
  14:     0x7f48ce18f786 - std::panicking::begin_panic_handler::{{closure}}::hfba7f507ddcc9465
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/panicking.rs:657:13
  15:     0x7f48ce18cf79 - std::sys_common::backtrace::__rust_end_short_backtrace::h9a9f7575e226ea27
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/sys_common/backtrace.rs:171:18
  16:     0x7f48ce18f4b7 - rust_begin_unwind
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/panicking.rs:645:5
  17:     0x7f48ce1d81a6 - core::panicking::panic_fmt::h1705551aae729902
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/core/src/panicking.rs:72:14
  18:     0x7f48ce1d869e - core::panicking::assert_failed_inner::h00893e3fdeefe35d
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/core/src/panicking.rs:402:17
  19:     0x7f48d17cdb63 - core[6020f37af3fd38b3]::panicking::assert_failed::<rustc_middle[5fe173ea7043de96]::ty::Ty, rustc_middle[5fe173ea7043de96]::ty::Ty>
  20:     0x7f48d0980082 - <rustc_mir_transform[4405d1901a52c55b]::coroutine::by_move_body::ByMoveBody as rustc_middle[5fe173ea7043de96]::mir::MirPass>::run_pass
  21:     0x7f48d26018cd - rustc_mir_transform[4405d1901a52c55b]::pass_manager::run_passes_inner
  22:     0x7f48d2901c6b - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>
  23:     0x7f48d27adf71 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  24:     0x7f48d27adb4c - rustc_query_impl[d334e283fae4920]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace
  25:     0x7f48d2d4ecd8 - rustc_mir_transform[4405d1901a52c55b]::ffi_unwind_calls::has_ffi_unwind_calls
  26:     0x7f48d2d4e797 - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::has_ffi_unwind_calls::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 1usize]>>
  27:     0x7f48d2d4de3b - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  28:     0x7f48d2d4daff - rustc_query_impl[d334e283fae4920]::query_impl::has_ffi_unwind_calls::get_query_non_incr::__rust_end_short_backtrace
  29:     0x7f48d01d1063 - rustc_mir_transform[4405d1901a52c55b]::mir_promoted
  30:     0x7f48d2963b1a - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 16usize]>>
  31:     0x7f48d2963ded - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  32:     0x7f48d2963a23 - rustc_query_impl[d334e283fae4920]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace
  33:     0x7f48d27ac0b2 - rustc_borrowck[5a88212387f3128e]::mir_borrowck
  34:     0x7f48d27abfe7 - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>
  35:     0x7f48d27adf71 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  36:     0x7f48d27ada8c - rustc_query_impl[d334e283fae4920]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  37:     0x7f48d3197602 - rustc_middle[5fe173ea7043de96]::query::plumbing::query_get_at::<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>>
  38:     0x7f48d3197660 - <rustc_borrowck[5a88212387f3128e]::type_check::TypeChecker>::prove_closure_bounds
  39:     0x7f48d2b4c31f - <rustc_borrowck[5a88212387f3128e]::type_check::TypeChecker>::typeck_mir
  40:     0x7f48cf9ba043 - rustc_borrowck[5a88212387f3128e]::type_check::type_check
  41:     0x7f48cfc6ebba - rustc_borrowck[5a88212387f3128e]::nll::compute_regions
  42:     0x7f48d359b393 - rustc_borrowck[5a88212387f3128e]::do_mir_borrowck
  43:     0x7f48d27ac50a - rustc_borrowck[5a88212387f3128e]::mir_borrowck
  44:     0x7f48d27abfe7 - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>
  45:     0x7f48d27adf71 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  46:     0x7f48d27ada8c - rustc_query_impl[d334e283fae4920]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  47:     0x7f48d3197602 - rustc_middle[5fe173ea7043de96]::query::plumbing::query_get_at::<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>>
  48:     0x7f48d3197660 - <rustc_borrowck[5a88212387f3128e]::type_check::TypeChecker>::prove_closure_bounds
  49:     0x7f48d2b4c31f - <rustc_borrowck[5a88212387f3128e]::type_check::TypeChecker>::typeck_mir
  50:     0x7f48cf9ba043 - rustc_borrowck[5a88212387f3128e]::type_check::type_check
  51:     0x7f48cfc6ebba - rustc_borrowck[5a88212387f3128e]::nll::compute_regions
  52:     0x7f48d359b393 - rustc_borrowck[5a88212387f3128e]::do_mir_borrowck
  53:     0x7f48d27ac50a - rustc_borrowck[5a88212387f3128e]::mir_borrowck
  54:     0x7f48d27abfe7 - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>
  55:     0x7f48d27adf71 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  56:     0x7f48d27ada8c - rustc_query_impl[d334e283fae4920]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace
  57:     0x7f48d2e5a3a1 - rustc_middle[5fe173ea7043de96]::query::plumbing::query_get_at::<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_span[540eec0b4f93a280]::def_id::LocalDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>>
  58:     0x7f48d3358845 - rustc_hir_analysis[2010b50b941483c2]::collect::type_of::type_of_opaque
  59:     0x7f48d33586d5 - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::type_of_opaque::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>
  60:     0x7f48d2796a21 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::DefIdCache<rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  61:     0x7f48d357105e - rustc_query_impl[d334e283fae4920]::query_impl::type_of_opaque::get_query_non_incr::__rust_end_short_backtrace
  62:     0x7f48d2793556 - rustc_middle[5fe173ea7043de96]::query::plumbing::query_get_at::<rustc_query_system[949e82a314b0255b]::query::caches::DefIdCache<rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>>
  63:     0x7f48d026ab8c - rustc_hir_analysis[2010b50b941483c2]::collect::type_of::type_of
  64:     0x7f48d2797de2 - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>
  65:     0x7f48d2796a21 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::DefIdCache<rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  66:     0x7f48d279651b - rustc_query_impl[d334e283fae4920]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
  67:     0x7f48d2793556 - rustc_middle[5fe173ea7043de96]::query::plumbing::query_get_at::<rustc_query_system[949e82a314b0255b]::query::caches::DefIdCache<rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 8usize]>>>
  68:     0x7f48d351421d - rustc_hir_analysis[2010b50b941483c2]::check::check::check_item_type
  69:     0x7f48d2c8ac12 - rustc_hir_analysis[2010b50b941483c2]::check::wfcheck::check_well_formed
  70:     0x7f48d2c896e1 - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 1usize]>>
  71:     0x7f48d2c88e80 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::VecCache<rustc_hir[927083c3ea5abb61]::hir_id::OwnerId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  72:     0x7f48d2c88bff - rustc_query_impl[d334e283fae4920]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
  73:     0x7f48d2c86b3a - rustc_hir_analysis[2010b50b941483c2]::check::wfcheck::check_mod_type_wf
  74:     0x7f48d2c86961 - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 1usize]>>
  75:     0x7f48d3128c70 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::DefaultCache<rustc_span[540eec0b4f93a280]::def_id::LocalModDefId, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  76:     0x7f48d3128a1b - rustc_query_impl[d334e283fae4920]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
  77:     0x7f48d27a863b - rustc_hir_analysis[2010b50b941483c2]::check_crate
  78:     0x7f48d2af312a - rustc_interface[760585401d993596]::passes::analysis
  79:     0x7f48d2af2c9b - rustc_query_impl[d334e283fae4920]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[d334e283fae4920]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 1usize]>>
  80:     0x7f48d33a2525 - rustc_query_system[949e82a314b0255b]::query::plumbing::try_execute_query::<rustc_query_impl[d334e283fae4920]::DynamicConfig<rustc_query_system[949e82a314b0255b]::query::caches::SingleCache<rustc_middle[5fe173ea7043de96]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[d334e283fae4920]::plumbing::QueryCtxt, false>
  81:     0x7f48d33a2289 - rustc_query_impl[d334e283fae4920]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  82:     0x7f48d323e8a2 - rustc_interface[760585401d993596]::interface::run_compiler::<core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>, rustc_driver_impl[813d23a455cd902c]::run_compiler::{closure#0}>::{closure#0}
  83:     0x7f48d3308c99 - std[ec819ecd34fca12]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[760585401d993596]::util::run_in_thread_with_globals<rustc_interface[760585401d993596]::util::run_in_thread_pool_with_globals<rustc_interface[760585401d993596]::interface::run_compiler<core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>, rustc_driver_impl[813d23a455cd902c]::run_compiler::{closure#0}>::{closure#0}, core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>>::{closure#0}, core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>>
  84:     0x7f48d3308aa7 - <<std[ec819ecd34fca12]::thread::Builder>::spawn_unchecked_<rustc_interface[760585401d993596]::util::run_in_thread_with_globals<rustc_interface[760585401d993596]::util::run_in_thread_pool_with_globals<rustc_interface[760585401d993596]::interface::run_compiler<core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>, rustc_driver_impl[813d23a455cd902c]::run_compiler::{closure#0}>::{closure#0}, core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>>::{closure#0}, core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[6020f37af3fd38b3]::result::Result<(), rustc_span[540eec0b4f93a280]::ErrorGuaranteed>>::{closure#1} as core[6020f37af3fd38b3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  85:     0x7f48ce1993fb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h2f3fe605c6a4cca2
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/alloc/src/boxed.rs:2018:9
  86:     0x7f48ce1993fb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha91f5459b929b1aa
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/alloc/src/boxed.rs:2018:9
  87:     0x7f48ce1993fb - std::sys::pal::unix::thread::Thread::new::thread_start::h15995726dd0d0cf4
                               at /rustc/ceab6128fa48a616bfd3e3adf4bc80133b8ee223/library/std/src/sys/pal/unix/thread.rs:108:17
  88:     0x7f48cde94ac3 - start_thread
                               at ./nptl/pthread_create.c:442:8
  89:     0x7f48cdf26850 - __GI___clone3
                               at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
  90:                0x0 - <unknown>

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

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: rustc 1.79.0-nightly (ceab6128f 2024-04-03) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z dump-mir-dir=dir

query stack during panic:
#0 [mir_built] building MIR for `async_closure_explicit_return_type::{closure#0}::{closure#0}`
#1 [has_ffi_unwind_calls] checking if `async_closure_explicit_return_type::{closure#0}::{closure#0}` contains FFI-unwind calls
#2 [mir_promoted] promoting constants in MIR for `async_closure_explicit_return_type::{closure#0}::{closure#0}`
#3 [mir_borrowck] borrow-checking `async_closure_explicit_return_type::{closure#0}::{closure#0}`
#4 [mir_borrowck] borrow-checking `async_closure_explicit_return_type::{closure#0}`
#5 [mir_borrowck] borrow-checking `async_closure_explicit_return_type`
#6 [type_of_opaque] computing type of opaque `async_closure_explicit_return_type::{opaque#0}`
#7 [type_of] computing type of `async_closure_explicit_return_type::{opaque#0}`
#8 [check_well_formed] checking that `async_closure_explicit_return_type::{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
error: aborting due to 2 previous errors

Some errors have detailed explanations: E0601, E0658.
For more information about an error, try `rustc --explain E0601`.

@matthiaskrgr matthiaskrgr added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. A-edition-2021 Area: The 2021 edition labels Apr 3, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Apr 3, 2024
@matthiaskrgr matthiaskrgr changed the title ICE: compiler/rustc_mir_transform/src/coroutine/by_move_body.rs: i32 != &'{erased} mut i32 ICE: compiler/rustc_mir_transform/src/coroutine/by_move_body.rs: assertion failed: i32 != &'{erased} mut i32 Apr 3, 2024
@compiler-errors compiler-errors self-assigned this Apr 3, 2024
@jieyouxu jieyouxu added S-has-mcve Status: A Minimal Complete and Verifiable Example has been found for this issue and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Apr 3, 2024
@matthiaskrgr matthiaskrgr added the E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. label Apr 19, 2024
@compiler-errors
Copy link
Member

this was fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-edition-2021 Area: The 2021 edition C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ S-has-mcve Status: A Minimal Complete and Verifiable Example has been found for this issue T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

4 participants