Bug #78434 [Opn]: Generator yields no items after valid() call
| From: | nikic@php.net | Date: | Wed, 21 Aug 2019 13:03:49 +0000 |
| Subject: | Bug #78434 [Opn]: Generator yields no items after valid() call | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-222338@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=78434&edit=1
ID: 78434
Updated by: nikic@php.net
Reported by: enumag at gmail dot com
Summary: Generator yields no items after valid() call
Status: Open
Type: Bug
Package: *General Issues
Operating System: irrelevant
PHP Version: 7.4.0beta2
Block user comment: N
Private report: N
New Comment:
The correct behavior here depends on whether "yield from" is supposed to iterate from the
current position of the generator, or from the start (and throw if we're not at the start). To
make this more obvious, replace valid() with current() -- should the yield from repeat the value you
already fetched?
Generally I would agree that it should iterate from the start, in particular because this is what
yield from does for non-generator Iterators.
Previous Comments:
------------------------------------------------------------------------
[2019-08-21 10:02:01] enumag at gmail dot com
Description:
------------
See the example script. The inner $function generator is called twice so two zeros should be yielded
from $wrapper. Yet only one is yielded if I call valid() on the Generator before using yield from.
Test script:
---------------
https://3v4l.org/GfJHG
Expected result:
----------------
00
Actual result:
--------------
0
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=78434&edit=1