Skip to content

ICE:can't get the span of an arbitrary parsed attribute: Parsed(Coroutine(<source>:28:32: 28:44 (#0))) #146839

@rucsesec

Description

@rucsesec

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 

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.F-coroutines`#![feature(coroutines)]`F-stmt_expr_attributes`#![feature(stmt_expr_attributes)]`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.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions