summaryrefslogtreecommitdiffstats
path: root/tests/ui/closures/2229_closure_analysis/migrations/issue-86753.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/closures/2229_closure_analysis/migrations/issue-86753.rs')
-rw-r--r--tests/ui/closures/2229_closure_analysis/migrations/issue-86753.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/ui/closures/2229_closure_analysis/migrations/issue-86753.rs b/tests/ui/closures/2229_closure_analysis/migrations/issue-86753.rs
new file mode 100644
index 000000000..fce9cac62
--- /dev/null
+++ b/tests/ui/closures/2229_closure_analysis/migrations/issue-86753.rs
@@ -0,0 +1,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() { }