error[E0277]: `()` is not a future
  --> $DIR/recurse-ice-129215.rs:6:5
   |
LL |     a()
   |     ^^^ `()` is not a future
   |
   = help: the trait `Future` is not implemented for `()`

error[E0277]: `()` is not a future
  --> $DIR/recurse-ice-129215.rs:3:13
   |
LL | async fn a() {
   |             ^ `()` is not a future
   |
   = help: the trait `Future` is not implemented for `()`

error[E0308]: mismatched types
  --> $DIR/recurse-ice-129215.rs:3:14
   |
LL |   async fn a() {
   |  ______________^
LL | |
LL | |
LL | |     a()
LL | | }
   | |_^ expected `()`, found `async` fn body
   |
   = note:    expected unit type `()`
           found `async` fn body `{async fn body of a()}`

error: aborting due to 3 previous errors

Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
