summaryrefslogtreecommitdiffstats
path: root/src/test/ui/closures/2229_closure_analysis/migrations/issue-86753.rs
blob: fce9cac627b5e970a46d0cf515898a011014071d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// edition:2018
// check-pass

#![warn(rust_2021_compatibility)]

use std::future::Future;

struct Runtime;

impl Runtime {
    pub fn block_on<F: Future>(&self, _future: F) -> F::Output {
        unimplemented!()
    }
}

pub fn http<F, Fut>(_func: F)
where
    F: Fn() -> Fut,
    Fut: Future<Output = ()>,
{
    let rt = Runtime {};
    let srv = rt.block_on(async move { serve(move || async move { unimplemented!() }) });
    let _ = || rt.block_on(async { srv });
}

pub struct Server<S> {
    _marker: std::marker::PhantomData<S>,
}

pub fn serve<S>(_new_service: S) -> Server<S> {
    unimplemented!()
}

fn main() { }