Skip to content

ICE: No HirId for DefId(0:5 ~ example[56a3]::{extern#0}::foo::{opaque#0}) #150754

@bushilushan

Description

@bushilushan

Code

#![allow(incomplete_features)]
#![feature(generic_const_exprs)]

unsafe extern "C" {
    async fn foo() -> [u8; 1];
}

fn main() {}

Meta

rustc --version --verbose:

rustc 1.94.0-nightly (4fa80a5e7 2026-01-05)
binary: rustc
commit-hash: 4fa80a5e733e2202d7ca4c203c2fdfda41cfe7dc
commit-date: 2026-01-05
host: x86_64-unknown-linux-gnu
release: 1.94.0-nightly
LLVM version: 21.1.8
Program Output

error: functions in `extern` blocks cannot have `async` qualifier
 --> <source>:5:5
  |
4 | unsafe extern "C" {
  | ----------------- in this `extern` block
5 |     async fn foo() -> [u8; 1];
  |     ^^^^^ help: remove the `async` qualifier

error: internal compiler error: /rustc-dev/4fa80a5e733e2202d7ca4c203c2fdfda41cfe7dc/compiler/rustc_middle/src/hir/mod.rs:385:32: No HirId for DefId(0:5 ~ example[56a3]::{extern#0}::foo::{opaque#0})


thread 'rustc' (3) panicked at /rustc-dev/4fa80a5e733e2202d7ca4c203c2fdfda41cfe7dc/compiler/rustc_middle/src/hir/mod.rs:385:32:
Box<dyn Any>
stack backtrace:
   0:     0x74da40020213 - <<std[af1e605669566855]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8f020666baac6f85]::fmt::Display>::fmt
   1:     0x74da4060fa88 - core[8f020666baac6f85]::fmt::write
   2:     0x74da40036496 - <std[af1e605669566855]::sys::stdio::unix::Stderr as std[af1e605669566855]::io::Write>::write_fmt
   3:     0x74da3fff6048 - std[af1e605669566855]::panicking::default_hook::{closure#0}
   4:     0x74da40013aa3 - std[af1e605669566855]::panicking::default_hook
   5:     0x74da3eff941a - std[af1e605669566855]::panicking::update_hook::<alloc[39411945a9644664]::boxed::Box<rustc_driver_impl[7da2f3dc94ba7d32]::install_ice_hook::{closure#1}>>::{closure#0}
   6:     0x74da40013d82 - std[af1e605669566855]::panicking::panic_with_hook
   7:     0x74da3f035d31 - std[af1e605669566855]::panicking::begin_panic::<rustc_errors[88bfa846ca189060]::ExplicitBug>::{closure#0}
   8:     0x74da3f026396 - std[af1e605669566855]::sys::backtrace::__rust_end_short_backtrace::<std[af1e605669566855]::panicking::begin_panic<rustc_errors[88bfa846ca189060]::ExplicitBug>::{closure#0}, !>
   9:     0x74da3f025fcf - std[af1e605669566855]::panicking::begin_panic::<rustc_errors[88bfa846ca189060]::ExplicitBug>
  10:     0x74da3f053a71 - <rustc_errors[88bfa846ca189060]::diagnostic::BugAbort as rustc_errors[88bfa846ca189060]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  11:     0x74da3f602679 - rustc_middle[9869f86e0ce21355]::util::bug::opt_span_bug_fmt::<rustc_span[9ee37b5e541ce3ef]::span_encoding::Span>::{closure#0}
  12:     0x74da3f602802 - rustc_middle[9869f86e0ce21355]::ty::context::tls::with_opt::<rustc_middle[9869f86e0ce21355]::util::bug::opt_span_bug_fmt<rustc_span[9ee37b5e541ce3ef]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  13:     0x74da3f5f3e2b - rustc_middle[9869f86e0ce21355]::ty::context::tls::with_context_opt::<rustc_middle[9869f86e0ce21355]::ty::context::tls::with_opt<rustc_middle[9869f86e0ce21355]::util::bug::opt_span_bug_fmt<rustc_span[9ee37b5e541ce3ef]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  14:     0x74da3ddc2324 - rustc_middle[9869f86e0ce21355]::util::bug::bug_fmt
  15:     0x74da40862447 - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::local_def_id_to_hir_id::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>
  16:     0x74da40861837 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_data_structures[475b3253f7cc4f15]::vec_cache::VecCache<rustc_span[9ee37b5e541ce3ef]::def_id::LocalDefId, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[7d9845b1f2b32247]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  17:     0x74da4086158b - rustc_query_impl[40a969aaa96fe477]::query_impl::local_def_id_to_hir_id::get_query_non_incr::__rust_end_short_backtrace
  18:     0x74da40d7ede3 - rustc_hir_analysis[d668fdd7daf6d70c]::collect::generics_of::generics_of
  19:     0x74da406181e9 - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::generics_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>
  20:     0x74da406188c6 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_query_system[7d9845b1f2b32247]::query::caches::DefIdCache<rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  21:     0x74da406185eb - rustc_query_impl[40a969aaa96fe477]::query_impl::generics_of::get_query_non_incr::__rust_end_short_backtrace
  22:     0x74da40d80580 - rustc_hir_analysis[d668fdd7daf6d70c]::collect::generics_of::generics_of
  23:     0x74da406181e9 - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::generics_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>
  24:     0x74da406188c6 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_query_system[7d9845b1f2b32247]::query::caches::DefIdCache<rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  25:     0x74da406185eb - rustc_query_impl[40a969aaa96fe477]::query_impl::generics_of::get_query_non_incr::__rust_end_short_backtrace
  26:     0x74da414042ab - rustc_hir_analysis[d668fdd7daf6d70c]::collect::predicates_of::gather_explicit_predicates_of::{closure#0}
  27:     0x74da41402232 - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::explicit_predicates_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 24usize]>>
  28:     0x74da4075ee1a - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_query_system[7d9845b1f2b32247]::query::caches::DefIdCache<rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  29:     0x74da4075e722 - rustc_query_impl[40a969aaa96fe477]::query_impl::explicit_predicates_of::get_query_non_incr::__rust_end_short_backtrace
  30:     0x74da4075db11 - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::predicates_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 24usize]>>
  31:     0x74da4075ee39 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_query_system[7d9845b1f2b32247]::query::caches::DefIdCache<rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  32:     0x74da4075e622 - rustc_query_impl[40a969aaa96fe477]::query_impl::predicates_of::get_query_non_incr::__rust_end_short_backtrace
  33:     0x74da40cec06e - rustc_ty_utils[f7b0febed78ef719]::ty::param_env
  34:     0x74da40ceb58d - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::param_env::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>
  35:     0x74da406188c6 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_query_system[7d9845b1f2b32247]::query::caches::DefIdCache<rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  36:     0x74da406183b1 - rustc_query_impl[40a969aaa96fe477]::query_impl::param_env::get_query_non_incr::__rust_end_short_backtrace
  37:     0x74da4125b81e - rustc_hir_typeck[c473c7db0ad80422]::typeck_with_inspect::{closure#0}
  38:     0x74da4125670e - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>
  39:     0x74da40861837 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_data_structures[475b3253f7cc4f15]::vec_cache::VecCache<rustc_span[9ee37b5e541ce3ef]::def_id::LocalDefId, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[7d9845b1f2b32247]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  40:     0x74da408611c9 - rustc_query_impl[40a969aaa96fe477]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
  41:     0x74da40862695 - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::used_trait_imports::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>>
  42:     0x74da40861837 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_data_structures[475b3253f7cc4f15]::vec_cache::VecCache<rustc_span[9ee37b5e541ce3ef]::def_id::LocalDefId, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 8usize]>, rustc_query_system[7d9845b1f2b32247]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  43:     0x74da40861109 - rustc_query_impl[40a969aaa96fe477]::query_impl::used_trait_imports::get_query_non_incr::__rust_end_short_backtrace
  44:     0x74da40860b71 - rustc_hir_analysis[d668fdd7daf6d70c]::check_unused::check_unused_traits
  45:     0x74da40860a89 - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::check_unused_traits::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 0usize]>>
  46:     0x74da4174b566 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_query_system[7d9845b1f2b32247]::query::caches::SingleCache<rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  47:     0x74da4174b34e - rustc_query_impl[40a969aaa96fe477]::query_impl::check_unused_traits::get_query_non_incr::__rust_end_short_backtrace
  48:     0x74da40e24322 - rustc_hir_analysis[d668fdd7daf6d70c]::check_crate
  49:     0x74da414e9c5b - rustc_interface[8b30489432d2183b]::passes::analysis
  50:     0x74da414e98b5 - rustc_query_impl[40a969aaa96fe477]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[40a969aaa96fe477]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 0usize]>>
  51:     0x74da4174b566 - rustc_query_system[7d9845b1f2b32247]::query::plumbing::try_execute_query::<rustc_query_impl[40a969aaa96fe477]::DynamicConfig<rustc_query_system[7d9845b1f2b32247]::query::caches::SingleCache<rustc_middle[9869f86e0ce21355]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[40a969aaa96fe477]::plumbing::QueryCtxt, false>
  52:     0x74da4174b2c8 - rustc_query_impl[40a969aaa96fe477]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  53:     0x74da418f2594 - <rustc_interface[8b30489432d2183b]::passes::create_and_enter_global_ctxt<core[8f020666baac6f85]::option::Option<rustc_interface[8b30489432d2183b]::queries::Linker>, rustc_driver_impl[7da2f3dc94ba7d32]::run_compiler::{closure#0}::{closure#2}>::{closure#2} as core[8f020666baac6f85]::ops::function::FnOnce<(&rustc_session[e3479d2c0e2fa735]::session::Session, rustc_middle[9869f86e0ce21355]::ty::context::CurrentGcx, alloc[39411945a9644664]::sync::Arc<rustc_data_structures[475b3253f7cc4f15]::jobserver::Proxy>, &std[af1e605669566855]::sync::once_lock::OnceLock<rustc_middle[9869f86e0ce21355]::ty::context::GlobalCtxt>, &rustc_data_structures[475b3253f7cc4f15]::sync::worker_local::WorkerLocal<rustc_middle[9869f86e0ce21355]::arena::Arena>, &rustc_data_structures[475b3253f7cc4f15]::sync::worker_local::WorkerLocal<rustc_hir[531b9123c80fe08]::Arena>, rustc_driver_impl[7da2f3dc94ba7d32]::run_compiler::{closure#0}::{closure#2})>>::call_once::{shim:vtable#0}
  54:     0x74da417dc798 - rustc_interface[8b30489432d2183b]::interface::run_compiler::<(), rustc_driver_impl[7da2f3dc94ba7d32]::run_compiler::{closure#0}>::{closure#1}
  55:     0x74da41751d0e - std[af1e605669566855]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[8b30489432d2183b]::util::run_in_thread_with_globals<rustc_interface[8b30489432d2183b]::util::run_in_thread_pool_with_globals<rustc_interface[8b30489432d2183b]::interface::run_compiler<(), rustc_driver_impl[7da2f3dc94ba7d32]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  56:     0x74da41751ae0 - <std[af1e605669566855]::thread::lifecycle::spawn_unchecked<rustc_interface[8b30489432d2183b]::util::run_in_thread_with_globals<rustc_interface[8b30489432d2183b]::util::run_in_thread_pool_with_globals<rustc_interface[8b30489432d2183b]::interface::run_compiler<(), rustc_driver_impl[7da2f3dc94ba7d32]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[8f020666baac6f85]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  57:     0x74da41753882 - <std[af1e605669566855]::sys::thread::unix::Thread>::new::thread_start
  58:     0x74da3b094ac3 - <unknown>
  59:     0x74da3b1268c0 - <unknown>
  60:                0x0 - <unknown>

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-2026-01-07T07_32_08-1.txt` to your bug report

note: rustc 1.94.0-nightly (4fa80a5e7 2026-01-05) running on x86_64-unknown-linux-gnu

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 [local_def_id_to_hir_id] getting HIR ID of `foo::{opaque#0}`
#1 [generics_of] computing generics of `foo::{opaque#0}`
#2 [generics_of] computing generics of `foo::{opaque#0}::{constant#0}`
#3 [explicit_predicates_of] computing explicit predicates of `foo::{opaque#0}::{constant#0}`
#4 [predicates_of] computing predicates of `foo::{opaque#0}::{constant#0}`
#5 [param_env] computing normalized predicates of `foo::{opaque#0}::{constant#0}`
#6 [typeck] type-checking `foo::{opaque#0}::{constant#0}`
#7 [used_trait_imports] finding used_trait_imports `foo::{opaque#0}::{constant#0}`
#8 [check_unused_traits] checking unused trait imports in crate
#9 [analysis] running analysis passes on crate `example`
end of query stack
error: aborting due to 2 previous errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.F-generic_const_exprs`#![feature(generic_const_exprs)]`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.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