- Notifications
You must be signed in to change notification settings - Fork 13.9k
Open
Labels
C-bugCategory: This is a bug.Category: This is a bug.F-coroutines`#![feature(coroutines)]``#![feature(coroutines)]`F-stmt_expr_attributes`#![feature(stmt_expr_attributes)]``#![feature(stmt_expr_attributes)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueStatus: 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.Relevant to the compiler team, which will review and decide on the PR/issue.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.This issue may need triage. Remove it if it has been sufficiently triaged.
Description
This also seems to be an ICE caused by converting the closure to a function pointer. I'm not sure if it's a duplicate of #146837 (which I accidentally filed with another account, sorry), or if they are both duplicates of some other issue.
Code
#![feature(coroutines, stmt_expr_attributes)] const _: for<'a> fn() -> i32 = #[coroutine] || -> i32 { yield 0; return 1; }; fn main(){}Meta
rustc --version --verbose:
rustc 1.92.0-nightly (dd7fda570 2025-09-20) binary: rustc commit-hash: dd7fda570040e8a736f7d8bc28ddd1b444aabc82 commit-date: 2025-09-20 host: x86_64-unknown-linux-gnu release: 1.92.0-nightly LLVM version: 21.1.1 Error output
thread 'rustc' (3) panicked at /rustc-dev/7c275d09ea6b953d2cca169667184a7214bd14c7/compiler/rustc_hir/src/hir.rs:1323:18: can't get the span of an arbitrary parsed attribute: Parsed(Coroutine(<source>:28:32: 28:44 (#0))) Backtrace
stack backtrace: 0: 0x7b706be05953 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h1d9a860939142303 1: 0x7b706c601fc4 - core::fmt::write::h4cde2f6e6eca889f 2: 0x7b706bdba5f1 - std::io::Write::write_fmt::hbbb02a45894db6e0 3: 0x7b706bdcb5d2 - std::sys::backtrace::BacktraceLock::print::hfcdaff63564fa703 4: 0x7b706bdd1539 - std::panicking::default_hook::{{closure}}::hcc588fdbd9e0eddf 5: 0x7b706bdd1063 - std::panicking::default_hook::h21841b6cba7fa436 6: 0x7b706adf5bd7 - std[6c96415bc1a38016]::panicking::update_hook::<alloc[c6e2df4d00e1f0b6]::boxed::Box<rustc_driver_impl[459800387efcc559]::install_ice_hook::{closure#1}>>::{closure#0} 7: 0x7b706bdd195f - std::panicking::panic_with_hook::hedf05123aa8b61bb 8: 0x7b706bdd171a - std::panicking::panic_handler::{{closure}}::h956f7c5977a5ec91 9: 0x7b706bdcb709 - std::sys::backtrace::__rust_end_short_backtrace::h743f27db24eccdeb 10: 0x7b706bdac05d - __rustc[dd6286f626093c3b]::rust_begin_unwind 11: 0x7b70690928c0 - core::panicking::panic_fmt::h4f3e86766fc85179 12: 0x7b706e06a7db - <rustc_hir_typeck[ec5df76106ecc9bb]::fn_ctxt::FnCtxt>::precedence::{closure#0}.llvm.14209757712867987235.cold 13: 0x7b706ca76c6d - <rustc_hir[f64a1fb3a7caff8d]::hir::Expr>::precedence 14: 0x7b706b1050c5 - <rustc_hir_typeck[ec5df76106ecc9bb]::fn_ctxt::FnCtxt>::suggest_deref_ref_or_into 15: 0x7b706b0cc144 - <rustc_hir_typeck[ec5df76106ecc9bb]::fn_ctxt::FnCtxt>::emit_type_mismatch_suggestions 16: 0x7b706b0c7b63 - <rustc_hir_typeck[ec5df76106ecc9bb]::fn_ctxt::FnCtxt>::emit_coerce_suggestions 17: 0x7b706ca70ab7 - rustc_hir_typeck[ec5df76106ecc9bb]::typeck_with_inspect::{closure#0} 18: 0x7b706ca662b6 - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>> 19: 0x7b706c7e74c4 - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_data_structures[e568e5fb65a8620a]::vec_cache::VecCache<rustc_span[9408016a182fdcc0]::def_id::LocalDefId, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[44f2cb83942a7389]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 20: 0x7b706c7e6e49 - rustc_query_impl[8ceca73aa722394f]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace 21: 0x7b706d0e8a3a - rustc_mir_build[a421b28dce73fa3]::thir::pattern::check_match::check_match 22: 0x7b706d0e7e1b - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::check_match::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 1usize]>> 23: 0x7b706ce976ef - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_data_structures[e568e5fb65a8620a]::vec_cache::VecCache<rustc_span[9408016a182fdcc0]::def_id::LocalDefId, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[44f2cb83942a7389]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 24: 0x7b706ca07b89 - rustc_query_impl[8ceca73aa722394f]::query_impl::check_match::get_query_non_incr::__rust_end_short_backtrace 25: 0x7b706ca07c9a - rustc_mir_build[a421b28dce73fa3]::builder::build_mir 26: 0x7b706c607781 - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::mir_built::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>> 27: 0x7b706c7e74c4 - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_data_structures[e568e5fb65a8620a]::vec_cache::VecCache<rustc_span[9408016a182fdcc0]::def_id::LocalDefId, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[44f2cb83942a7389]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 28: 0x7b706c7e6f09 - rustc_query_impl[8ceca73aa722394f]::query_impl::mir_built::get_query_non_incr::__rust_end_short_backtrace 29: 0x7b706d129635 - rustc_mir_transform[ff5e13a6e501cd2c]::mir_const_qualif 30: 0x7b706d1295a9 - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::mir_const_qualif::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 4usize]>> 31: 0x7b706d128a4b - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_query_system[44f2cb83942a7389]::query::caches::DefIdCache<rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 4usize]>>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 32: 0x7b706d12878a - rustc_query_impl[8ceca73aa722394f]::query_impl::mir_const_qualif::get_query_non_incr::__rust_end_short_backtrace 33: 0x7b70697b6fdd - rustc_mir_transform[ff5e13a6e501cd2c]::mir_promoted 34: 0x7b706d088c56 - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::mir_promoted::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 16usize]>> 35: 0x7b706d088f39 - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_data_structures[e568e5fb65a8620a]::vec_cache::VecCache<rustc_span[9408016a182fdcc0]::def_id::LocalDefId, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 16usize]>, rustc_query_system[44f2cb83942a7389]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 36: 0x7b706d088aa6 - rustc_query_impl[8ceca73aa722394f]::query_impl::mir_promoted::get_query_non_incr::__rust_end_short_backtrace 37: 0x7b706d7ae323 - rustc_borrowck[dd44c889f7481f64]::mir_borrowck 38: 0x7b706d7ae1dd - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>> 39: 0x7b706c7e74c4 - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_data_structures[e568e5fb65a8620a]::vec_cache::VecCache<rustc_span[9408016a182fdcc0]::def_id::LocalDefId, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[44f2cb83942a7389]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 40: 0x7b706c7ebe09 - rustc_query_impl[8ceca73aa722394f]::query_impl::mir_borrowck::get_query_non_incr::__rust_end_short_backtrace 41: 0x7b706d1705c9 - rustc_mir_transform[ff5e13a6e501cd2c]::mir_drops_elaborated_and_const_checked 42: 0x7b706d16fc59 - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::mir_drops_elaborated_and_const_checked::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>> 43: 0x7b706c7e74c4 - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_data_structures[e568e5fb65a8620a]::vec_cache::VecCache<rustc_span[9408016a182fdcc0]::def_id::LocalDefId, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[44f2cb83942a7389]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 44: 0x7b706c7e6c09 - rustc_query_impl[8ceca73aa722394f]::query_impl::mir_drops_elaborated_and_const_checked::get_query_non_incr::__rust_end_short_backtrace 45: 0x7b706d118d4a - rustc_mir_transform[ff5e13a6e501cd2c]::mir_for_ctfe 46: 0x7b706d118bef - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::mir_for_ctfe::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>> 47: 0x7b706c61ad7a - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_query_system[44f2cb83942a7389]::query::caches::DefIdCache<rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 48: 0x7b706d270a23 - rustc_query_impl[8ceca73aa722394f]::query_impl::mir_for_ctfe::get_query_non_incr::__rust_end_short_backtrace 49: 0x7b706d270bf7 - <rustc_const_eval[77c235cee62e82ee]::interpret::eval_context::InterpCx<rustc_const_eval[77c235cee62e82ee]::const_eval::machine::CompileTimeMachine>>::load_mir 50: 0x7b706d271bdd - rustc_const_eval[77c235cee62e82ee]::const_eval::eval_queries::eval_to_allocation_raw_provider 51: 0x7b706d27174e - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::eval_to_allocation_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 24usize]>> 52: 0x7b706d267420 - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_query_system[44f2cb83942a7389]::query::caches::DefaultCache<rustc_middle[e11099e36afb5411]::ty::PseudoCanonicalInput<rustc_middle[e11099e36afb5411]::mir::interpret::GlobalId>, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 53: 0x7b706d266fc7 - rustc_query_impl[8ceca73aa722394f]::query_impl::eval_to_allocation_raw::get_query_non_incr::__rust_end_short_backtrace 54: 0x7b706d2695ad - rustc_const_eval[77c235cee62e82ee]::const_eval::eval_queries::eval_to_const_value_raw_provider 55: 0x7b706d2693c0 - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::eval_to_const_value_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 24usize]>> 56: 0x7b706d268b12 - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_query_system[44f2cb83942a7389]::query::caches::DefaultCache<rustc_middle[e11099e36afb5411]::ty::PseudoCanonicalInput<rustc_middle[e11099e36afb5411]::mir::interpret::GlobalId>, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 24usize]>>, false, true, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 57: 0x7b706d268691 - rustc_query_impl[8ceca73aa722394f]::query_impl::eval_to_const_value_raw::get_query_non_incr::__rust_end_short_backtrace 58: 0x7b706d0c9a90 - <rustc_middle[e11099e36afb5411]::ty::context::TyCtxt>::par_hir_body_owners::<rustc_hir_analysis[1618d3df19afa2f8]::check_crate::{closure#2}>::{closure#0} 59: 0x7b706d0c8a4d - rustc_hir_analysis[1618d3df19afa2f8]::check_crate 60: 0x7b706c7e8bb0 - rustc_interface[f4ad0248271d71d8]::passes::analysis 61: 0x7b706c7e886d - rustc_query_impl[8ceca73aa722394f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8ceca73aa722394f]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 0usize]>> 62: 0x7b706d665526 - rustc_query_system[44f2cb83942a7389]::query::plumbing::try_execute_query::<rustc_query_impl[8ceca73aa722394f]::DynamicConfig<rustc_query_system[44f2cb83942a7389]::query::caches::SingleCache<rustc_middle[e11099e36afb5411]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[8ceca73aa722394f]::plumbing::QueryCtxt, false> 63: 0x7b706d66517c - rustc_query_impl[8ceca73aa722394f]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace 64: 0x7b706d872d4f - rustc_interface[f4ad0248271d71d8]::passes::create_and_enter_global_ctxt::<core[88dcab6addd45e6c]::option::Option<rustc_interface[f4ad0248271d71d8]::queries::Linker>, rustc_driver_impl[459800387efcc559]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0} 65: 0x7b706d7e96be - rustc_interface[f4ad0248271d71d8]::interface::run_compiler::<(), rustc_driver_impl[459800387efcc559]::run_compiler::{closure#0}>::{closure#1} 66: 0x7b706d7482f8 - std[6c96415bc1a38016]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[f4ad0248271d71d8]::util::run_in_thread_with_globals<rustc_interface[f4ad0248271d71d8]::util::run_in_thread_pool_with_globals<rustc_interface[f4ad0248271d71d8]::interface::run_compiler<(), rustc_driver_impl[459800387efcc559]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()> 67: 0x7b706d747fdc - <<std[6c96415bc1a38016]::thread::Builder>::spawn_unchecked_<rustc_interface[f4ad0248271d71d8]::util::run_in_thread_with_globals<rustc_interface[f4ad0248271d71d8]::util::run_in_thread_pool_with_globals<rustc_interface[f4ad0248271d71d8]::interface::run_compiler<(), rustc_driver_impl[459800387efcc559]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[88dcab6addd45e6c]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} 68: 0x7b706d74e68d - std::sys::thread::unix::Thread::new::thread_start::hb28ad79a6a69b48c 69: 0x7b7066e94ac3 - <unknown> 70: 0x7b7066f26850 - <unknown> 71: 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: please make sure that you have updated to the latest nightly note: please attach the file at `/app/rustc-ice-2025-09-21T08_30_04-1.txt` to your bug report note: compiler flags: -C debuginfo=2 --crate-type bin -C linker=/opt/compiler-explorer/gcc-15.2.0/bin/gcc query stack during panic: #0 [typeck] type-checking `_` #1 [check_match] match-checking `_` ... and 9 other queries... use `env RUST_BACKTRACE=1` to see the full query stack note: no errors encountered even though delayed bugs were created note: those delayed bugs will now be shown as internal compiler errors error: internal compiler error: `TypeError` when attempting coercion but no error emitted --> <source>:28:45 | 28 | const _: for<'a> fn() -> i32 = #[coroutine] || -> i32 { yield 0; return 1; }; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: delayed at compiler/rustc_hir_typeck/src/demand.rs:276:47 - disabled backtrace --> <source>:28:45 | 28 | const _: for<'a> fn() -> i32 = #[coroutine] || -> i32 { yield 0; return 1; }; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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 `/app/rustc-ice-2025-09-21T08_30_04-1.txt` to your bug report note: compiler flags: -C debuginfo=2 --crate-type bin -C linker=/opt/compiler-explorer/gcc-15.2.0/bin/gcc query stack during panic: end of query stack lengyijun
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.F-coroutines`#![feature(coroutines)]``#![feature(coroutines)]`F-stmt_expr_attributes`#![feature(stmt_expr_attributes)]``#![feature(stmt_expr_attributes)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueStatus: 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.Relevant to the compiler team, which will review and decide on the PR/issue.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.This issue may need triage. Remove it if it has been sufficiently triaged.