]> git.lizzy.rs Git - rust.git/commitdiff
Desugared asyncs into generators and minimised.
authorGiles Cope <gilescope@gmail.com>
Wed, 6 Mar 2019 08:45:18 +0000 (08:45 +0000)
committerGiles Cope <gilescope@gmail.com>
Wed, 6 Mar 2019 08:45:18 +0000 (08:45 +0000)
src/test/run-pass/generator/issue-57084.rs

index f6bc93cd9375f693e006fc7d5713942c9c33aadd..8aaa6a0e427d13395f176ddb746f9229f63a6988 100644 (file)
@@ -1,27 +1,28 @@
 // This issue reproduces an ICE on compile (E.g. fails on 2018-12-19 nightly).
+// "cannot relate bound region: ReLateBound(DebruijnIndex(1), BrAnon(1)) <= '_#1r"
 // run-pass
 // edition:2018
-#![feature(async_await,futures_api,generators)]
+#![feature(generators,generator_trait)]
+use std::ops::Generator;
 
-pub struct Foo;
-
-impl Foo {
-    async fn with<'a, F, R>(&'a self, f: F) -> R
-    where F: Fn() -> R + 'a,
-    {
+fn with<F>(f: F) -> impl Generator<Yield=(), Return=()>
+where F: Fn() -> ()
+{
+    move || {
         loop {
             match f() {
                 _ => yield,
             }
         }
     }
+}
 
-    pub async fn run<'a>(&'a self, data: &'a [u8])
-    {
-        let _to_pin = self.with(move || println!("{:p}", data));
+fn main() {
+    let data = &vec![1];
+    || {
+        let _to_pin = with(move || println!("{:p}", data));
         loop {
             yield
         }
-    }
+    };
 }
-fn main() {}