about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGiles Cope <gilescope@gmail.com>2019-03-06 08:45:18 +0000
committerGiles Cope <gilescope@gmail.com>2019-03-06 08:45:18 +0000
commit143e7d57321babc6fe993df370e0b54861443c11 (patch)
tree3870cc180643db24289d05c77187c198f69ce48f
parentfcec51d1efb9f2c445d503d0e7f8837088190d09 (diff)
downloadrust-143e7d57321babc6fe993df370e0b54861443c11.tar.gz
rust-143e7d57321babc6fe993df370e0b54861443c11.zip
Desugared asyncs into generators and minimised.
-rw-r--r--src/test/run-pass/generator/issue-57084.rs25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/test/run-pass/generator/issue-57084.rs b/src/test/run-pass/generator/issue-57084.rs
index f6bc93cd937..8aaa6a0e427 100644
--- a/src/test/run-pass/generator/issue-57084.rs
+++ b/src/test/run-pass/generator/issue-57084.rs
@@ -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() {}