@@ -460,6 +460,84 @@ class: "Symfony\Component\VarDumper\Tests\Caster\ReflectionCasterTest"
460
460
);
461
461
}
462
462
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
+ */
463
541
public function testGenerator ()
464
542
{
465
543
if (\extension_loaded ('xdebug ' )) {
@@ -471,6 +549,7 @@ public function testGenerator()
471
549
472
550
$ expectedDump = <<<'EODUMP'
473
551
Generator {
552
+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
474
553
this: Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo { …}
475
554
%s: {
476
555
%sGeneratorDemo.php:14 {
@@ -479,6 +558,7 @@ public function testGenerator()
479
558
› yield from bar();
480
559
› }
481
560
}
561
+ Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo->baz() {}
482
562
%A}
483
563
closed: false
484
564
}
@@ -505,6 +585,7 @@ public function testGenerator()
505
585
closed: false
506
586
}
507
587
1 => Generator {
588
+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo"
508
589
%s: {
509
590
%s%eTests%eFixtures%eGeneratorDemo.php:%d {
510
591
Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::foo()
@@ -526,6 +607,7 @@ public function testGenerator()
526
607
527
608
$ expectedDump = <<<'EODUMP'
528
609
Generator {
610
+ function: "Symfony\Component\VarDumper\Tests\Fixtures\GeneratorDemo::baz"
529
611
closed: true
530
612
}
531
613
EODUMP;
0 commit comments