Skip to content

ICE: next solver: future_not_send on any async code #17411

Description

@matthiaskrgr

Summary

// clippy-driver code.rs --edition=2021 -Znext-solver=globally
#![warn(clippy::future_not_send)]
async fn run() {}
fn main() {}

Version

rustc 1.99.0-nightly (b69e089eb 2026-07-12)
binary: rustc
commit-hash: b69e089eb3ec9976ddec602bf18c3d6a8ce72512
commit-date: 2026-07-12
host: x86_64-unknown-linux-gnu
release: 1.99.0-nightly
LLVM version: 22.1.8

Error output

Backtrace

warning: function `run` is never used
--> ./code.rs:2:10
|
2 | async fn run() {}
|          ^^^
|
= note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: 1 warning emitted

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: OpaqueTypeStorage { opaque_types: {OpaqueTypeKey { def_id: DefId(0:4 ~ code[65d7]::run::{opaque#0}), args: [] }: ProvisionalHiddenType { span: ./code.rs:2:15: 2:15 (#6), ty: Coroutine(DefId(0:5 ~ code[65d7]::run::{closure#0}), [(), std::future::ResumeTy, (), (), ()]) }}, duplicate_entries: [] }
|
= note: delayed at /rustc-dev/b69e089eb3ec9976ddec602bf18c3d6a8ce72512/compiler/rustc_infer/src/infer/mod.rs:369:43
           0: <rustc_errors::DiagCtxtInner>::emit_diagnostic
           1: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
           2: <rustc_span::ErrorGuaranteed as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
           3: <rustc_errors::DiagCtxtHandle>::delayed_bug::<alloc::string::String>
           4: <rustc_infer::infer::InferCtxt as core::ops::drop::Drop>::drop
           5: core::ptr::drop_glue::<rustc_infer::infer::InferCtxt>
           6: <clippy_lints::future_not_send::FutureNotSend as rustc_lint::passes::LateLintPass>::check_fn
           7: <clippy_lints::CombinedLateLintPass as rustc_lint::passes::LateLintPass>::check_fn
           8: <rustc_lint::late::LateContextAndPass<rustc_lint::late::RuntimeCombinedLateLintPass> as rustc_hir::intravisit::Visitor>::visit_fn
           9: <rustc_lint::late::LateContextAndPass<rustc_lint::late::RuntimeCombinedLateLintPass> as rustc_hir::intravisit::Visitor>::visit_nested_item
          10: <rustc_lint::late::LateContextAndPass<rustc_lint::late::RuntimeCombinedLateLintPass>>::process_mod
          11: rustc_lint::late::check_crate::{closure#0}
          12: rustc_lint::late::check_crate
          13: rustc_interface::passes::analysis::{closure#0}::{closure#0}::{closure#2}
          14: rustc_data_structures::sync::parallel::par_fns
          15: rustc_interface::passes::analysis::{closure#0}::{closure#0}
          16: rustc_data_structures::sync::parallel::par_fns
          17: rustc_interface::passes::analysis
          18: rustc_query_impl::execution::try_execute_query::<rustc_middle::query::caches::SingleCache<rustc_middle::query::erase::ErasedData<[u8; 0]>>, false>
          19: rustc_query_impl::query_impl::analysis::execute_query_non_incr::__rust_end_short_backtrace
          20: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}
          21: std::sys::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<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
          22: <std::thread::lifecycle::spawn_unchecked<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
          23: <std::sys::thread::unix::Thread>::new::thread_start
          24: <unknown>
          25: <unknown>


note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new?template=ice.yml

note: please make sure that you have updated to the latest nightly

note: please attach the file at `/home/matthias/vcs/github/CRED/rustc-ice-2026-07-12T09_25_10-4005091.txt` to your bug report

note: rustc 1.99.0-nightly (b69e089eb 2026-07-12) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z next-solver=globally

query stack during panic:
end of query stack
note: Clippy version: clippy 0.1.99 (b69e089eb3 2026-07-12)

Metadata

Metadata

Assignees

Labels

C-bugCategory: Clippy is not doing the correct thingI-ICEIssue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions