LL| |// Regression test for . LL| | LL| |//@ edition: 2021 LL| | LL| |//@ aux-build: executor.rs LL| |extern crate executor; LL| | LL| |use std::sync::atomic::{AtomicUsize, Ordering}; LL| | LL| |static STEPS: AtomicUsize = AtomicUsize::new(0); LL| | LL| 1|async fn call_once(f: impl AsyncFnOnce()) { LL| 1| f().await; LL| 1|} LL| | LL| 1|pub fn main() { LL| 1| let async_closure = async || { LL| 1| STEPS.fetch_add(1, Ordering::SeqCst); LL| 1| STEPS.fetch_add(1, Ordering::SeqCst); LL| 1| }; ------------------ | Unexecuted instantiation: async_closure2::main::{closure#0}::{closure#0}::<_> ------------------ | async_closure2::main::{closure#0}: | LL| 1| let async_closure = async || { | LL| 1| STEPS.fetch_add(1, Ordering::SeqCst); | LL| 1| STEPS.fetch_add(1, Ordering::SeqCst); | LL| 1| }; ------------------ LL| 1| executor::block_on(call_once(async_closure)); LL| 1| assert_eq!(STEPS.load(Ordering::SeqCst), 2); LL| 1|}