@@ -460,6 +460,84 @@ class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
460460 );
461461 }
462462
463+ /**
464+ * @requires PHP < 8.4
465+ */
466+ public function testGeneratorPriorTo84 ()
467+ {
468+ if (\extension_loaded ('xdebug ' )) {
469+ $ this ->markTestSkipped ('xdebug is active ' );
470+ }
471+
472+ $ generator = new GeneratorDemo ();
473+ $ generator = $ generator ->baz ();
474+
475+ $ expectedDump = <<<'EODUMP'
476+ Generator {
477+ this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
478+ %s: {
479+ %sGeneratorDemo.php:14 {
480+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz()
481+ › {
482+ › yield from bar();
483+ › }
484+ }
485+ %A}
486+ closed: false
487+ }
488+ EODUMP;
489+
490+ $ this ->assertDumpMatchesFormat ($ expectedDump , $ generator );
491+
492+ foreach ($ generator as $ v ) {
493+ break ;
494+ }
495+
496+ $ expectedDump = <<<'EODUMP'
497+ array:2 [
498+ 0 => ReflectionGenerator {
499+ this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
500+ %s: {
501+ %s%eTests%eFixtures%eGeneratorDemo.php:%d {
502+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
503+ %A › yield 1;
504+ %A }
505+ %s%eTests%eFixtures%eGeneratorDemo.php:20 { …}
506+ %s%eTests%eFixtures%eGeneratorDemo.php:14 { …}
507+ %A }
508+ closed: false
509+ }
510+ 1 => Generator {
511+ %s: {
512+ %s%eTests%eFixtures%eGeneratorDemo.php:%d {
513+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
514+ › yield 1;
515+ › }
516+ ›
517+ }
518+ %A }
519+ closed: false
520+ }
521+ ]
522+ EODUMP;
523+
524+ $ r = new \ReflectionGenerator ($ generator );
525+ $ this ->assertDumpMatchesFormat ($ expectedDump , [$ r , $ r ->getExecutingGenerator ()]);
526+
527+ foreach ($ generator as $ v ) {
528+ }
529+
530+ $ expectedDump = <<<'EODUMP'
531+ Generator {
532+ closed: true
533+ }
534+ EODUMP;
535+ $ this ->assertDumpMatchesFormat ($ expectedDump , $ generator );
536+ }
537+
538+ /**
539+ * @requires PHP 8.4
540+ */
463541 public function testGenerator ()
464542 {
465543 if (\extension_loaded ('xdebug ' )) {
@@ -471,6 +549,7 @@ public function testGenerator()
471549
472550 $ expectedDump = <<<'EODUMP'
473551Generator {
552+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
474553 this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
475554 %s: {
476555 %sGeneratorDemo.php:14 {
@@ -479,6 +558,7 @@ public function testGenerator()
479558 › yield from bar();
480559 › }
481560 }
561+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() {}
482562%A}
483563 closed: false
484564}
@@ -505,6 +585,7 @@ public function testGenerator()
505585 closed: false
506586 }
507587 1 => Generator {
588+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo"
508589 %s: {
509590 %s%eTests%eFixtures%eGeneratorDemo.php:%d {
510591 Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
@@ -526,6 +607,7 @@ public function testGenerator()
526607
527608 $ expectedDump = <<<'EODUMP'
528609Generator {
610+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
529611 closed: true
530612}
531613EODUMP;
0 commit comments