@@ -463,6 +463,84 @@ class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
463463 );
464464 }
465465
466+ /**
467+ * @requires PHP < 8.4
468+ */
469+ public function testGeneratorPriorTo84 ()
470+ {
471+ if (\extension_loaded ('xdebug ' )) {
472+ $ this ->markTestSkipped ('xdebug is active ' );
473+ }
474+
475+ $ generator = new GeneratorDemo ();
476+ $ generator = $ generator ->baz ();
477+
478+ $ expectedDump = <<<'EODUMP'
479+ Generator {
480+ this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
481+ %s: {
482+ %sGeneratorDemo.php:14 {
483+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz()
484+ › {
485+ › yield from bar();
486+ › }
487+ }
488+ %A}
489+ closed: false
490+ }
491+ EODUMP;
492+
493+ $ this ->assertDumpMatchesFormat ($ expectedDump , $ generator );
494+
495+ foreach ($ generator as $ v ) {
496+ break ;
497+ }
498+
499+ $ expectedDump = <<<'EODUMP'
500+ array:2 [
501+ 0 => ReflectionGenerator {
502+ this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
503+ %s: {
504+ %s%eTests%eFixtures%eGeneratorDemo.php:%d {
505+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
506+ %A › yield 1;
507+ %A }
508+ %s%eTests%eFixtures%eGeneratorDemo.php:20 { …}
509+ %s%eTests%eFixtures%eGeneratorDemo.php:14 { …}
510+ %A }
511+ closed: false
512+ }
513+ 1 => Generator {
514+ %s: {
515+ %s%eTests%eFixtures%eGeneratorDemo.php:%d {
516+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
517+ › yield 1;
518+ › }
519+ ›
520+ }
521+ %A }
522+ closed: false
523+ }
524+ ]
525+ EODUMP;
526+
527+ $ r = new \ReflectionGenerator ($ generator );
528+ $ this ->assertDumpMatchesFormat ($ expectedDump , [$ r , $ r ->getExecutingGenerator ()]);
529+
530+ foreach ($ generator as $ v ) {
531+ }
532+
533+ $ expectedDump = <<<'EODUMP'
534+ Generator {
535+ closed: true
536+ }
537+ EODUMP;
538+ $ this ->assertDumpMatchesFormat ($ expectedDump , $ generator );
539+ }
540+
541+ /**
542+ * @requires PHP 8.4
543+ */
466544 public function testGenerator ()
467545 {
468546 if (\extension_loaded ('xdebug ' )) {
@@ -474,6 +552,7 @@ public function testGenerator()
474552
475553 $ expectedDump = <<<'EODUMP'
476554Generator {
555+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
477556 this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
478557 %s: {
479558 %sGeneratorDemo.php:14 {
@@ -482,6 +561,7 @@ public function testGenerator()
482561 › yield from bar();
483562 › }
484563 }
564+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() {}
485565%A}
486566 closed: false
487567}
@@ -508,12 +588,13 @@ public function testGenerator()
508588 closed: false
509589 }
510590 1 => Generator {
591+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo"
511592 %s: {
512593 %s%eTests%eFixtures%eGeneratorDemo.php:%d {
513594 Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
514595 › yield 1;
515596 › }
516- ›
597+ ›
517598 }
518599%A }
519600 closed: false
@@ -529,6 +610,7 @@ public function testGenerator()
529610
530611 $ expectedDump = <<<'EODUMP'
531612Generator {
613+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
532614 closed: true
533615}
534616EODUMP;
0 commit comments