// edition:2018 // check-pass #![warn(rust_2021_compatibility)] use std::future::Future; struct Runtime; impl Runtime { pub fn block_on(&self, _future: F) -> F::Output { unimplemented!() } } pub fn http(_func: F) where F: Fn() -> Fut, Fut: Future, { let rt = Runtime {}; let srv = rt.block_on(async move { serve(move || async move { unimplemented!() }) }); let _ = || rt.block_on(async { srv }); } pub struct Server { _marker: std::marker::PhantomData, } pub fn serve(_new_service: S) -> Server { unimplemented!() } fn main() { }