bug70904.phpt 603 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --TEST--
  2. Bug #70904 (yield from incorrectly marks valid generator as finished)
  3. --FILE--
  4. <?php
  5. function g1() {
  6. yield 1;
  7. }
  8. function g2($g1) {
  9. yield from $g1;
  10. echo "reached!\n";
  11. yield 2;
  12. }
  13. $g1 = g1();
  14. $g2 = g2($g1);
  15. var_dump($g2->valid());
  16. var_dump($g2->current());
  17. $g1->next();
  18. var_dump($g1->valid());
  19. var_dump($g2->valid());
  20. var_dump($g2->current());
  21. $g2->next();
  22. var_dump($g2->valid());
  23. var_dump($g2->current());
  24. $g2->next();
  25. var_dump($g2->valid());
  26. var_dump($g2->current());
  27. ?>
  28. --EXPECT--
  29. bool(true)
  30. int(1)
  31. bool(false)
  32. bool(true)
  33. int(1)
  34. reached!
  35. bool(true)
  36. int(2)
  37. bool(false)
  38. NULL