error[E0720]: cannot resolve opaque type
  --> $DIR/recursive-coroutine.rs:7:13
   |
LL | fn foo() -> impl Coroutine<Yield = (), Return = ()> {
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ recursive opaque type
...
LL |         let mut gen = Box::pin(foo());
   |             ------- coroutine captures itself here

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0720`.