async function *delegate_next() {
  async function *inner() {
    var x: void = yield; // ok, unannotated defaults to void
  }
  yield *inner();
}
delegate_next().next(0); // err number ~> void

async function *delegate_yield() {
  async function *inner() {
    yield 0;
  }
  yield *inner();
}
(async () => {
  for await (const x of delegate_yield()) {
    x as void; // error: number ~> void
  }
});

async function *delegate_return() {
  async function *inner() {
    return 0;
  }
  var x: void = yield *inner(); // error: number ~> void
}
