1--TEST--
2ReflectionGenerator::isClosed: ->valid() terminates an empty generator.
3--FILE--
4<?php
5
6function empty_generator() {
7    return;
8    yield;
9}
10
11$gens = [
12    (function() {
13        yield;
14    })(),
15    empty_generator(),
16];
17
18foreach ($gens as $gen) {
19    $ref = new ReflectionGenerator($gen);
20    var_dump($ref->isClosed());
21    var_dump($gen->valid());
22    var_dump($ref->isClosed());
23    try {
24        var_dump($ref->getExecutingLine());
25    } catch (\Exception $e) {
26        echo $e->getMessage(), PHP_EOL;
27    }
28
29    echo PHP_EOL;
30}
31
32?>
33--EXPECTF--
34bool(false)
35bool(true)
36bool(false)
37int(11)
38
39bool(false)
40bool(false)
41bool(true)
42Cannot fetch information from a closed Generator
43